I need to manipulate some xml files using Linq to xml.
I have an existing XDocument that I Load
Now I cannot seem to be able to add a namespace to it.
I do:
//Load an existing xml into a XDocument
XDocument xdoc=XDocument.Load(myXml);
//Create a namespace
XNamespace myNS="http://www.w3.org/2001/XMLSchema-instance/MyShinyNewNamespace";
xAttribute myAttr=new XAttribute(XNamespace.Xmlns +"myNS",myNS);
//Add new namepsace to root
xdoc.Root ????
What do you do here?
How do I retrieve my namespace?
How do I Remove/Replace?
many thanks
First of all, while XML markup allows you to use
to use a single namespace declaration attribute to put the root element as well as those descendant elements into the declared namespace, when you manipulate the tree model you need to change the
Name
of all elements so you need e.g.If you also want to set a certain prefix
pf
then addionally setTo add dynamically from one xdocument to another one see http://www.hanselman.com/blog/GetNamespacesFromAnXMLDocumentWithXPathDocumentAndLINQToXML.aspx