Jak zapobiec pustym atrybutom xmlns w danych wyjściowych z XmlDocument .NET?

Podczas generowania XML z XmlDocument w .NET, przy pierwszym wstawianiu elementu bez powiązanej przestrzeni nazw pojawia się pusty atrybut xmlns; jak można temu zapobiec?

przykład:

XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
    "cokolwiek:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("xyz"));
Console.WriteLine(xml.OuterXml);

output:

<root xmlns="cokolwiek:name-space-1.0"><xyz xmlns="" /></root>

to co chciałem uzyskać:

<root xmlns="cokolwiek:name-space-1.0"><xyz /></root>

Czy istnieje rozwiązanie mające zastosowanie w kodzie XmlDocument, a nie coś, co pojawia się po przekonwertowaniu dokumentu na ciąg znaków za pomocą OuterXml?

Dzięki.

1 odpowiedź

Podaj przestrzeń nazw węzła głównego podczas tworzenia dowolnego węzła potomnego, na którym nie chcesz mieć prefiksu. Użycie przestrzeni nazw bez przedrostka w katalogu głównym oznacza, że musisz użyć tej samej przestrzeni nazw w elementach potomnych, aby również nie miały przedrostków.

poprawiony kod:

XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root", "whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner", "whatever:name-space-1.0")); 
Console.WriteLine(xml.OuterXml);

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.