tutorial - system xml linq example c#
¿Cómo puedo eliminar el atributo xmlns vacío del nodo creado por XElement? (1)
Este es mi código:
XElement itemsElement = new XElement("Items", string.Empty);
//some code
parentElement.Add(itemsElement);
Después de eso conseguí esto:
<Items xmlns=""></Items>
El elemento padre no tiene ningún espacio de nombres. ¿Qué puedo hacer para obtener un elemento Items
sin el atributo de espacio de nombres vacío?
Se trata de cómo manejas tus espacios de nombres. El siguiente código crea elementos secundarios con diferentes espacios de nombres:
XNamespace defaultNs = "http://www.tempuri.org/default";
XNamespace otherNs = "http://www.tempuri.org/other";
var root = new XElement(defaultNs + "root");
root.Add(new XAttribute(XNamespace.Xmlns + "otherNs", otherNs));
var parent = new XElement(otherNs + "parent");
root.Add(parent);
var child1 = new XElement(otherNs + "child1");
parent.Add(child1);
var child2 = new XElement(defaultNs + "child2");
parent.Add(child2);
var child3 = new XElement("child3");
parent.Add(child3);
Producirá XML que se ve así:
<root xmlns:otherNs="http://www.tempuri.org/other" xmlns="http://www.tempuri.org/default">
<otherNs:parent>
<otherNs:child1 />
<child2 />
<child3 xmlns="" />
</otherNs:parent>
</root>
Mira la diferencia entre child1
, child1
y child3
. child2
se crea usando el espacio de nombres predeterminado, que es probablemente lo que quieres, mientras que child3
es lo que tienes ahora.