1 个不稳定版本
0.1.3 | 2024年4月4日 |
---|---|
0.1.2 |
|
0.1.1 |
|
0.1.0 |
|
#12 in #storing
20KB
384 行代码(不包括注释)
注意
你好!这是一个由 Freja Roberts 制作的工程,首先想向他们表示敬意。我还在慢慢地更新这个项目,因为它非常直观,但只是需要更新。
Szl Simple XML
Szl Simple xml 是一个小的 crate,用于读取、解析和存储 XML,作为从 simple-xml 的扩展。此扩展增加了获取可变节点
用法
示例解析
let note =
szl_simple_xml::from_file("./examples/note.xml").expect("Failed to parse simple_xml");
let to = ¬e["to"][0];
let from = ¬e["from"][0];
let heading = ¬e.get_nodes("heading").expect("Missing heading")[0];
let body = ¬e["body"][0];
let lang = note
.get_attribute("lang")
.expect("Failed to get attribute lang");
对于更多示例,请参阅: 文档
lib.rs
:
XML 解析器和写入器 此 crate 可以从文件或字符串中加载 XML 并将其解析到内存中。XML 也可以进行操作或创建,并写入文件
从文件加载 XML
fn load_message() -> Result<(), simple_xml::Error> {
let root = simple_xml::from_file("examples/message.xml")?;
// Since there can multiple nodes/tags with the same name, we need to index twice
let heading = &root["heading"][0];
println!("Heading: {}", heading.content);
// Access attributes
let lang = root.get_attribute("lang").expect("Missing lang attribute");
println!("Language: {}", lang);
Ok(())
}
创建 XML 结构
let name = String::from("Tim Roberts");
let health = 50;
let mut player = simple_xml::new("player", String::new());
player.add_new_node("health", health.to_string());
player.add_new_node("name", name);
// Save to file
player.save_to_file("./player.xml");
编辑 XML 结构
let file =
szl_simple_xml::from_file("./examples/note.xml").expect("Failed to parse simple_xml");
let mut resources =
&mut file.get_mut_nodes("resources").unwrap()[0].get_mut_nodes("resource").unwrap()[0];
let href = String::from("page1.html");
let new_file_node = szl_simple_xml::new("file", String::new());
new_file_node.add_attribute("href", &href);
resources.add_node(new_file_node);
let write_file = file.save_to_file_pretty("./test.xml")
更多示例请参见测试