1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#[cfg(test)]
pub(crate) fn xml_to_vec(xml_string: &str) -> Vec<String> {
let mut xml_elements: Vec<String> = Vec::new();
let re = regex::Regex::new(r">\s*<").unwrap();
let tokens: Vec<&str> = re.split(xml_string).collect();
for token in &tokens {
let mut element = token.trim().to_string();
if !element.starts_with('<') {
element = format!("<{element}");
}
if !element.ends_with('>') {
element = format!("{element}>");
}
xml_elements.push(element);
}
xml_elements
}
#[cfg(test)]
pub(crate) fn vml_to_vec(vml_string: &str) -> Vec<String> {
let mut vml_string = vml_string.replace(['\r', '\n'], "");
let re = regex::Regex::new(r"\s+").unwrap();
vml_string = re.replace_all(&vml_string, " ").into();
vml_string = vml_string.replace("; ", ";");
vml_string = vml_string.replace('\'', "\"");
vml_string = vml_string.replace("<x:Anchor> ", "<x:Anchor>");
xml_to_vec(&vml_string)
}