如何解决将XML反序列化为Rust结构时,可以在没有中间结构的情况下直接映射子级吗?
我必须将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 举报,一经查实,本站将立刻删除。