Johann Woelper 6 years ago
parent
commit
7eb966717d
2 changed files with 48 additions and 0 deletions
  1. 9 0
      Cargo.toml
  2. 39 0
      src/main.rs

+ 9 - 0
Cargo.toml

@@ -0,0 +1,9 @@
+[package]
+name = "xmlparse"
+version = "0.1.0"
+authors = ["Johann Woelper <woelper@gmail.com>"]
+edition = "2018"
+
+[dependencies]
+walkdir = "*"
+treexml = "*"

+ 39 - 0
src/main.rs

@@ -0,0 +1,39 @@
+use std::fs::File;
+use std::io::BufReader;
+use treexml;
+
+
+
+
+
+fn recurse_children(c: &treexml::Element) -> Vec<treexml::Element> {
+    dbg!(&c.name);
+    c.children.clone().into_iter().flat_map(|x| recurse_children(&x)).collect()
+}
+
+
+
+fn main() {
+
+    let doc = r#"
+    <level0>
+        <taggy>yo</taggy>
+        <level1>
+            <item>blood</item>
+            <item>thunder</item>
+            <level2>
+                <item>lightning</item>
+            </level2>
+        </level1>
+    </level0>
+    "#;
+
+
+    let children: Option<Vec<treexml::Element>> =  treexml::Document::parse(doc.as_bytes())
+        .ok()
+        .and_then(|r| r.root)
+        .map(|r| recurse_children(&r));
+
+    dbg!(children);
+
+}