我尝试了新的“的PropertyGroup”元素添加到下面的XML文件没有命名空间声明创建XML元素
<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>
我使用的代码如下(注意,已删除其他逻辑) :
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);
这产生XML文档中的下列新元素:
<PropertyGroup>
<value xmlns="">test</value>
</PropertyGroup>
如何摆脱元素上的名称空间声明?
你必须在这里使用InnerXml属性吗?明确地做它会更容易。 (如果这是一个选项,使用LINQ to XML会更容易。) – 2011-03-30 07:43:08
不确定LINQ to XML - LINQ对我来说是一个未知数...:-) – 2011-03-30 07:56:29
但我刚刚发现这个:http://stackoverflow.com/questions/2013165/linq-to-xml-adding-an-element – 2011-03-30 07:59:10