如何从 struct 中创建 xml?
How to create xml from struct in rust?
我尝试从 Rust 中的结构创建一个 xml 字符串。该结构是嵌套的,我总是在 xml 中得到重复的标签。
我正在使用 serde-xml-rs 版本 0.5.1.
#[derive(Serialize, Debug)]
struct A {
#[serde(rename(serialize = "B"))]
pub b: B
}
#[derive(Serialize, Debug)]
struct B {
pub c: String
}
let foo = A {
b: B {
c: "bar".to_string()
}
};
println!("{:?}", to_string(&foo));
这会产生
<A>
<B>
<B>
<c>bar</c>
</B>
</B>
</A>
我的期望:
<A>
<B>
<c>bar</c>
</B>
</A>
如何才能只获得一个B标签?
您可以更改 B
结构以避免它像这样发出 <B>
标记:
#[derive(Serialize, Debug)]
struct B {
pub c: String,
#[serde(flatten, skip)]
pub _d: (),
}
我尝试从 Rust 中的结构创建一个 xml 字符串。该结构是嵌套的,我总是在 xml 中得到重复的标签。 我正在使用 serde-xml-rs 版本 0.5.1.
#[derive(Serialize, Debug)]
struct A {
#[serde(rename(serialize = "B"))]
pub b: B
}
#[derive(Serialize, Debug)]
struct B {
pub c: String
}
let foo = A {
b: B {
c: "bar".to_string()
}
};
println!("{:?}", to_string(&foo));
这会产生
<A>
<B>
<B>
<c>bar</c>
</B>
</B>
</A>
我的期望:
<A>
<B>
<c>bar</c>
</B>
</A>
如何才能只获得一个B标签?
您可以更改 B
结构以避免它像这样发出 <B>
标记:
#[derive(Serialize, Debug)]
struct B {
pub c: String,
#[serde(flatten, skip)]
pub _d: (),
}