Rust使用dom操作xml
·
引入crate:
xml-doc = {version = "*"}
read and write
use xml_doc::{Document, Element};
let mut xml = r#"<?xml version="1.0"?>
<package xmlflag="http://purl.org/dc/element/1.1/">
<metadata>
<title>xml-doc</title>
<rights>MIT or Apache</rights>
</metadata>
</package>
"#.to_string();
let xml_file_name = "d:\\test.xml";
if try_exists(xml_file_name).await? {
let content = std::fs::read_to_string(xml_file_name)?;
xml = content;
}
let mut doc = Document::parse_str(&xml).unwrap();
let package = doc.root_element().unwrap();
let mut attrs = package.attributes(&doc);
for(k, v) in attrs{
println!("all attrs:{} = {}", k, v);//attrs.get(k).unwrap()
}
println!("dc = {:?}", attrs.get("xmlflag").unwrap());
let metadata = package.find(&mut doc, "metadata").unwrap();
let title_node = metadata.find(&doc, "title").unwrap();
println!("title_node.text={}", title_node.text_content(&doc));
let author = Element::build(&mut doc, "creator")
.text_content("henreash")
.attribute("id", "001")
.push_to(metadata);
let new_xml = doc.write_str();
println!("{:?}", new_xml);
std::fs::write(xml_file_name, new_xml.unwrap().as_bytes()).unwrap();
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)