我有一些 XML,它的标签包含多个同名的同级标签,如下所示:
<foo>
<bar/>
<bar/>
</foo>
Run Code Online (Sandbox Code Playgroud)
(也可能有多个顶级<foo>
,尽管我还没有抽出时间尝试(反)序列化它。)
使用此代码:
<foo>
<bar/>
<bar/>
</foo>
Run Code Online (Sandbox Code Playgroud)
并且不要忘记激活序列化功能:
[dependencies.quick-xml]
version = "0.18.1"
features = ["serialize"]
Run Code Online (Sandbox Code Playgroud)
我可以很好地反序列化,但是序列化添加了一个额外的<bar>
标签作为bars
包装实际<bar>
标签的字段:
<Foo>
<bar>
<bar></bar>
<bar></bar>
</bar>
</Foo>
Run Code Online (Sandbox Code Playgroud)
#[serde(rename = "bar", default)]
在现场,bars
我第一次尝试根据fast-xml 的文档来解决这个问题,但它显然不起作用。我还查看了 serde 的文档,确实找到了一个flatten
属性,但当我尝试将其应用到该领域时,它似乎不起作用bars
。
除了手动实现之外,有什么方法可以获得我需要的序列化吗Deserialize
?
如果相关的话,我尝试使用的实际数据格式是flam3 文件格式。这里有一个示例文件。该<flame>
元素相当于<foo>
此处,并且<xform>
相当于<bar>
。
归档时间: |
|
查看次数: |
1686 次 |
最近记录: |