0

谁能告诉我是否有更好的方法来搜索 XML 文件并替换值?该节点可以存在于任何地方,因此不能使用 xpath。

我可以通过以下方式实现我想要的,但只是想知道是否有更简单的方法。

 XmlDocument doc = new XmlDocument();
 doc.Load("c:\\test.xml");

 XmlNodeList elemList = doc.GetElementsByTagName("NameToChange");

 for (int i=0; i < elemList.Count; i++)
 {   
     elemList[i].InnerText = "replacedText";
 }  

TIA

戴夫

4

2 回答 2

1

使用LINQ to XML和 XElement 等类。就个人而言,我更喜欢它而不是 XPath,因为它直接集成到语言中,而不是依赖于字符串。

于 2012-05-27T19:23:30.967 回答
0

实际上,对于 XPath,我认为未指定位置没有问题。只需使用后代方向 http://www.tizag.com/xmlTutorial/xpathdescendant.php

XPath 将是:

//NameToChange

但是,如果您问我,您的解决方案似乎还可以。你这样做的方式似乎很容易。

使用一种或另一种解决方案可能导致的主要区别在于难以以您希望选择节点的方式实施任何更改。我对 C# 库不熟悉,但在选择元素时,XPath 几乎可以让您在一行中做任何事情。

于 2012-05-27T19:10:00.050 回答