gpt4 book ai didi

xml - Rust serde如何反序列化xml “weird”列表?

转载 作者:行者123 更新时间:2023-12-03 11:36:36 24 4
gpt4 key购买 nike

我试图反序列化这种样式的xml列表,从技术上讲,它不是一个列表,但是表现得像一个列表:

<list>
<id-00001>
<name type="string">Pedro</name>
<age type="number">37</age>
</id-00001>
<id-00002>
<name type="string">Alex</name>
<age type="number">30</age>
</id-00002>
<list>
“列表”上的项目数是可变的,只会增加 id-0000x上的number(x)。
问题是我无法考虑如何使用serde将其映射到Rust结构。
我试图做这样的事情:

#[derive(Debug, Default, Deserialize)]
#[serde(rename = "list")]
struct List {
people: Vec<Person>
}

#[derive(Debug, Default, Deserialize)]
struct Person {
name: String,
age: u8
}
但我不知道如何处理 id-0000x标签。
编辑:
这是即时通讯使用的依赖项:
[dependencies]
serde = { version = "1.0.117", features = ["derive"] }
serde-xml-rs = "0.4.0"
我在这里先向您的帮助表示感谢。
问候

最佳答案

可能最简单的是反序列化标签:

struct List(BTreeMap<String, Person>);
这将使您有序地收集“id-bla” =>人员对。

关于xml - Rust serde如何反序列化xml “weird”列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65175784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com