找到xml节点的更好方法?

时间:2012-05-27 19:02:57

标签: c# xml

有人能告诉我是否有更好的方法来搜索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

戴夫

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

XPath将是:

//NameToChange

但如果你问我,你的解决方案似乎没问题。你做的方式似乎很容易。

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