Changing Namespace Declarations in an XML Document
The XmlDocument exposes namespace declarations and xmlns attributes as part of the document object model. These are stored in the XmlDocument, so when you save the document, it can preserve the location of those attributes. Changing these attributes has no affect on the Name, NamespaceURI, and Prefix properties of other nodes already in the tree. For example, if you load the following document:
<test xmlns="123"/>
Then the test
element has NamespaceURI 123
. If you remove the xmlns
attribute as follows:
doc.documentElement.RemoveAttribute("xmlns")
[C#]
doc.documentElement.RemoveAttribute("xmlns");
Then the test
element still has the NamespaceURI of 123
. Likewise if you add a different xmlns
attribute to the doc
element as follows:
doc.documentElement.SetAttribute("xmlns","456");
[C#]
doc.documentElement.SetAttribute("xmlns","456");
Then the test
element still has NamespaceURI 123
. So changing xmlns
attributes will have no affect until you save and re-load the XmlDocument object.