我是XML的新手,所以这可能是一个简单的问题。 我有一个XML文件结构如下。
<root>
<Test>
<EmpID>23</EmpID>
<EmpName>Packman</EmpName>
<EmpAge>33</EmpAge>
</Test>
<Test>
<EmpID>34</EmpID>
<EmpName>James</EmpName>
<EmpAge>13</EmpAge>
</Test>
<Test>
<EmpID>53</EmpID>
<EmpName>Nedved</EmpName>
<EmpAge>52</EmpAge>
</Test>
<root>
我想替换XML文件中的一些元素,如下所示
<root>
<Test>
<EmpID name="ID">23</EmpID>
<EmpName name="Nickname">Packman</EmpName>
<EmpAge name = "Age">33</EmpAge>
</Test>
<Test>
<EmpID name="ID">34</EmpID>
<EmpName name="Nickname">James</EmpName>
<EmpAge name = "Age">13</EmpAge>
</Test>
<Test>
<EmpID name="ID">53</EmpID>
<EmpName name="Nickname">Nedved</EmpName>
<EmpAge name = "Age">52</EmpAge>
</Test>
</root>
所以基本上我想重新加入或添加?要归属的元素。
ex)
<EmpID>value</EmpID> to <EmpID name="ID">value</EmpID>
我尝试了一些参考文献,但它们对我不起作用。 下面是我试过的那个,但它取代了整行。
XDocument xdoc1 = XDocument.Load("C:\\Test\\Test.xml");
XElement one = xdoc1.Descendants("EmpID").First();
one.ReplaceWith("EmpID name=NickName");
xdoc1.Save("C:\\Test\\Test_Modified.xml");
关键是中心'价值'不应该改变。见下文。
<EmpID>value</EmpID> to <EmpID name="ID">value</EmpID>
请告诉我如何解决这个问题。
答案 0 :(得分:3)
您只需设置attribute:
即可one.SetAttributeValue("name", "ID");
答案 1 :(得分:0)
要更改属性,您可以使用上述解决方案:
one.SetAttributeValue("name", "ID");
我找到重命名节点的最简单方法是:
xmlNode.InnerXmL = newNode.InnerXml.Replace("OldName>", "NewName>")
不包括开头&lt;确保关闭标记也被重命名。
您也可以参考此链接: http://www.goodgord.com/2006/10/how-to-rename-xml-node-in-c.html