在c#中使用特定xPath向xml文件添加键、值节点

本文关键字:添加 文件 xml 节点 xPath | 更新日期: 2023-09-27 18:07:17

我有一个xml文件

<configuration>
<MetisLinks>
<add key="MetisInternal" value="https://xyz.abc.com/" />
<add key="Hermes" value="https://hermes.abc.com/" />
<add key="umar" value="https://umar.abc.com/" />
</MetisLinks>
</configuration>

我需要使用c#在这个MetisLink节点中添加自定义键和值。如果它已经存在,则覆盖它。我搜索了不同的解决方案,但确切的是没有在互联网上。

提前感谢!

在c#中使用特定xPath向xml文件添加键、值节点

这段代码应该可以为你工作:

string keyToAdd = "testKey";
string valueToAdd = "http://test.com";
XmlDocument doc = new XmlDocument();
doc.Load(@"D:'build.xml");
XmlNode root = doc.DocumentElement;
XmlElement existingMatchingElement = (XmlElement)root.SelectSingleNode(string.Format("//MetisLinks/add[@key='{0}']", keyToAdd));
if (existingMatchingElement != null)
{
    existingMatchingElement.SetAttribute("value", valueToAdd);
}
else
{
    XmlNode myNode = root.SelectSingleNode("MetisLinks");
    var nodeToAdd = doc.CreateElement("add");
    nodeToAdd.SetAttribute("key", keyToAdd);
    nodeToAdd.SetAttribute("value", valueToAdd);
    myNode.AppendChild(nodeToAdd);
}
doc.Save(@"D:'build.xml");

我在D:'build.xml创建了一个文件并将xml复制到这里,你可以将包含该xml的文件放在任何地方只要在代码中使用该路径