Voici mon code:
XElement itemsElement = new XElement("Items", string.Empty);
//some code
parentElement.Add(itemsElement);
Après cela, j'ai obtenu ceci:
<Items xmlns=""></Items>
L'élément parent n'a pas d'espace de noms. Que puis-je faire pour obtenir un élément Items
sans l'attribut namespace vide?
Tout dépend de la façon dont vous gérez vos espaces de noms. Le code ci-dessous crée des éléments enfants avec différents espaces de noms:
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);
Il produira du XML qui ressemble à ceci:
<root xmlns:otherNs="http://www.tempuri.org/other" xmlns="http://www.tempuri.org/default">
<otherNs:parent>
<otherNs:child1 />
<child2 />
<child3 xmlns="" />
</otherNs:parent>
</root>
Regardez la différence entre child1
, child2
et child3
. child2
est créé en utilisant l'espace de noms par défaut, qui est probablement ce que vous voulez, tandis que child3
c'est ce que vous avez maintenant.