将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 (将#修改为@)