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";
 }  

ティア

デイブ

4

2 に答える 2

1

LINQ to XMLおよび XElement などのクラスを使用します。個人的には、XPath は文字列に依存するのではなく、言語に直接統合されているため、XPath よりも好きです。

于 2012-05-27T19:23:30.967 に答える
0

実際、XPathに関しては場所が特定できなくても問題ないと思います。子孫の方向を使用するだけです http://www.tizag.com/xmlTutorial/xpathdescendant.php

XPath は次のようになります。

//NameToChange

しかし、あなたが私に尋ねると、あなたの解決策は問題ないようです。あなたのやり方は簡単に思えます。

いずれかのソリューションを使用することによって生じる可能性のある主な違いは、ノードを選択する方法に変更を実装するのが難しいことです。私は C# ライブラリには詳しくありませんが、XPath を使用すると、要素の選択に関しては、1 行でほとんど何でも実行できます。

于 2012-05-27T19:10:00.050 に答える