xdocument tutorial query net manejo leer example ejemplos crear archivo c# .net xml linq-to-xml

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.