I am trying to add a new "PropertyGroup" element to the following XML file
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup> <ProjectGuid>{00AA7ECA-95A0-0000-0000-AD4D2E056BFE}</ProjectGuid> <OutputType>Library</OutputType> <AppDesignerFolder>Properties</AppDesignerFolder> <RootNamespace>testnS</RootNamespace> <AssemblyName>testname</AssemblyName> <PluginId>4B84E5C0-EC2B-4C0C-8B8E-3FAEB09F74C6</PluginId> </PropertyGroup> </Project>
The code I use is as follows (note that other logic has been removed):
XmlTextReader reader = new XmlTextReader(filename); XmlDocument doc = new XmlDocument(); doc.Load(reader); reader.Close(); XmlNamespaceManager ns = new XmlNamespaceManager(doc.NameTable); ns.AddNamespace("x", "http://schemas.microsoft.com/developer/msbuild/2003"); XmlElement root = doc.DocumentElement; XmlNode refNode = root.SelectSingleNode("x:Project", ns); root.SelectSingleNode("Project", ns); XmlElement newElement = doc.CreateElement("PropertyGroup", "http://schemas.microsoft.com/developer/msbuild/2003"); newElement.InnerXml = "<value>test</value>"; root.InsertAfter(newElement, refNode); doc.Save(filename);
This gives the following new element in the XML document:
<PropertyGroup> <value xmlns="">test</value> </PropertyGroup>
How do I get rid of a namespace declaration in an element?
c # xml
Benbun coder
source share