How to prevent blank xmlns attributes in output from .NET's XmlDocument?

前端 未结 7 1264
生来不讨喜
生来不讨喜 2020-11-27 03:56

When generating XML from XmlDocument in .NET, a blank xmlns attribute appears the first time an element without an associated namespace is inserted; ho

7条回答
  •  醉梦人生
    2020-11-27 04:42

    Thanks to Jeremy Lew's answer and a bit more playing around, I figured out how to remove blank xmlns attributes: pass in the root node's namespace when creating any child node you want not to have a prefix on. Using a namespace without a prefix at the root means that you need to use that same namespace on child elements for them to also not have prefixes.

    Fixed Code:

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

    Thanks everyone to all your answers which led me in the right direction!

提交回复
热议问题