xavier_internal/deserialize/
decode.rs

1#[macro_export]
2macro_rules! decode {
3    ($expr:expr) => { xavier::deserialize::decode::decode_xml($expr).to_string() };
4}
5
6pub fn decode_xml(input: &str) -> String {
7    input
8        .replace("&", "&")
9        .replace("&lt;", "<")
10        .replace("&gt;", ">")
11        .replace("&quot;", "\"")
12        .replace("&apos;", "'")
13}
14
15pub fn strip_cdata(s: &str) -> &str {
16    let cdata_start = "<![CDATA[";
17    let cdata_end = "]]>";
18
19    if s.starts_with(cdata_start) && s.ends_with(cdata_end) {
20        &s[cdata_start.len()..s.len() - cdata_end.len()]
21    } else {
22        s
23    }
24}