You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ClinicalTrialsDataProcessing/Parser/ctparse/src/main (copy).rs

45 lines
1.1 KiB
Rust

use quick_xml::Reader;
use quick_xml::events::Event;
use std::path::Path;
use serde::Deserialize;
use quick_xml::de::{from_str, DeError};
fn main() {
let xml = r#"<tag1 att1 = "test">
<tag2><!--Test comment-->Test</tag2>
<tag2>
Test 2
</tag2>
</tag1>"#;
let filepath = Path::new(r"/home/dad/research/ClinicalTrialsDataProcessing/Parser/APIResponse.xml");
//let mut reader = Reader::from_file(filepath).unwrap();
let mut reader = Reader::from_str(xml);
reader.trim_text(true);
let mut count = 0;
let mut buf = Vec::new();
let mut txt = Vec::new();
let mut names = Vec::new();
loop {
match reader.read_event(&mut buf) {
Ok(Event::Start(ref e)) => names.push(e.unescape_and_decode(&reader)),
Ok(Event::Text(e)) => txt.push(e.unescape_and_decode(&reader).expect("Error!")),
Err(e) => panic!("Error at position {}: {:?}", reader.buffer_position(), e),
Ok(Event::Eof) => break,
_ => (),
}
buf.clear();
}
println!("Found {} start events", count);
println!("Text events: {:?}", txt);
println!("Text events: {:?}", names);
}