Rust Serde:将XML直接反序列化到Vec<;T>;

Rust Serde:将XML直接反序列化到Vec<;T>;,xml,serialization,rust,deserialization,serde,Xml,Serialization,Rust,Deserialization,Serde,我需要使用serde序列化一些XML数据。 数据具有一种模式,其中复数标记名(例如猫、狗)将包含单数标记子标记的多个实例(猫、狗),如下所示: 第一类 第2类 狗1 狗2 现在,我可以使用serde和serdexmlrs对其进行反序列化: 使用serde::{序列化,反序列化}; 使用serde_xml_rs; #[派生(调试、序列化、反序列化)] 结构宠物{ 酒吧猫:猫, 酒吧狗:狗, } #[派生(调试、序列化、反序列化)] 结构猫{ 酒吧猫:Vec, } #[派生(调试、序列化、反序列

我需要使用
serde
序列化一些XML数据。 数据具有一种模式,其中复数标记名(例如猫、狗)将包含单数标记子标记的多个实例(猫、狗),如下所示:


第一类
第2类
狗1
狗2
现在,我可以使用
serde
serdexmlrs
对其进行反序列化:

使用serde::{序列化,反序列化};
使用serde_xml_rs;
#[派生(调试、序列化、反序列化)]
结构宠物{
酒吧猫:猫,
酒吧狗:狗,
}
#[派生(调试、序列化、反序列化)]
结构猫{
酒吧猫:Vec,
}
#[派生(调试、序列化、反序列化)]
结构狗{
酒吧狗:Vec,
}
#[派生(调试、序列化、反序列化)]
结构猫{
名称:String,
}
#[派生(调试、序列化、反序列化)]
结构狗{
名称:String,
}
fn main(){
设s=xml\u字符串(来自上面的);
让宠物:pets=serde_xml_rs::from_str(s).unwrap();
println!(“{:?}”,宠物);
}
问题:我可以使用一些serde hack删除中间结构
Cats
Dogs
,并简单地获取向量中的多个实例吗

#[派生(调试、序列化、反序列化)]
struct SlimmedPets{
酒吧猫:Vec,
酒吧狗:Vec,
}
当序列化
SlimmedPets
struct时,仍然返回相同的XML