use regex::Regex; use std::path::Path; use std::fs::read_to_string; use serde::Deserialize; use quick_xml::de::{from_str, DeError}; #[derive(Debug, Deserialize, PartialEq)] struct Struct { Name: String, #[serde(rename = "Field", default)] fields: Vec, #[serde(rename = "Struct", default)] structs: Vec } #[derive(Debug, Deserialize, PartialEq)] struct Field { Name: String, #[serde(rename = "$value")] value:String, } fn main() { // filepath let filepath: &Path = Path::new("/home/dad/research/ClinicalTrialsDataProcessing/Parser/simple.xml"); // read in a file let xml = read_to_string(filepath).unwrap(); //let xml = r#"NCT01874691"#; let s: Struct = from_str(&xml).unwrap(); println!("{:?}", s.Name) }