问题描述
我必须将XML文件反序列化为Rust结构:
<root date="2020">
<buecher>
<buch id="123">
<iban>123</iban>
</buch>
<buch id="456">
<iban>456</iban>
</buch>
</buecher>
</root>
extern crate serde;
extern crate serde_xml_rs;
#[macro_use]
extern crate serde_derive;
use std::fs::File;
use std::io::BufReader;
#[derive(Deserialize,Debug)]
struct Root {
date: String,buecher: Buecher,}
#[derive(Deserialize,Debug)]
struct Buecher {
buch: Vec<Buch>,Debug)]
struct Buch {
id: String,iban: String,}
fn main() {
let file = File::open("data/test.xml");
if file.is_ok() {
let buf_reader = BufReader::new(file.unwrap());
let data: Root = serde_xml_rs::from_reader(buf_reader).unwrap();
println!("{:#?}",data);
}
}
是否可以通过某种方式直接映射buch
子级而无需中间buecher
结构?
类似
#[derive(Deserialize,#[serde(rename = "buecher/buch")]
buecher: Vec<Buch>,}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)