我嘗試了新的「的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