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);