I'm trying to find a simple way to add XML to XML-with-xmlns without getting the xmlns=""
nor having to specify the xmlns
every time.
I tried both XDocument
and XmlDocument
but couldn’t find a simple way. The closest I got was doing this:
XmlDocument xml = new XmlDocument();
XmlNode docNode = xml.CreateXmlDeclaration("1.0", "UTF-8", null);
xml.AppendChild(docNode);
XmlElement root = xml.CreateElement("root", @"http://example.com");
xml.AppendChild(root);
root.InnerXml = "<a>b</a>";
But what I get is this:
<root xmlns="http://example.com">
<a xmlns="">b</a>
</root>
So: Is there a way to set the InnerXml
without it being modified?
You can create the
a
XmlElement
the same way you create theroot
element, and specify theInnerText
of that element.Option 1:
Option 2:
Resulting XML:
If you use
root.InnerXml = "<a>b</a>";
instead of creating theXmlElement
from theXmlDocument
the resulting XML is:Option 1:
Option 2: