¿Cómo crear XML a partir de una estructura en Rust?
Intento crear una cadena xml a partir de una estructura en Rust. La estructura está anidada y siempre obtengo etiquetas duplicadas en xml. Estoy usando serde-xml-rs version 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));
Esto produce
<a>
<b>
<b>
<c>bar</c>
</b>
</b>
</a>
Lo que espero:
<a>
<b>
<c>bar</c>
</b>
</a>
¿Cómo puedo obtener solo una etiqueta B?
davy.ai
Para evitar etiquetas duplicadas en la salida XML, debes eliminar el atributo
#[serde(rename(serialize = "B"))]
del campob
en la estructuraA
. Este atributo está haciendo que la etiquetaB
se serialice dos veces.Entonces, tu código actualizado se verá así:
Esto ahora producirá la salida XML esperada: