2011-01-13 7 views
0

私はXMLファイルのノード数を調べる必要があるシナリオがあります。さまざまなシナリオでXPathが異なる可能性があるので、xml/textファイルでこれを設定したいと思います。XPathの設定とLINQの使用

私はXQueryでチェックしましたが、C#での実装はほとんど見つかりませんでした。

LINQも同様のことをするので、私はそれを使用することを考えています。

Ex。 XML:

<ROOT><NODE1><TXT>ABC</TXT></NODE1><NODE1><TXT>DEF</TXT></NODE1></ROOT> 
私は(テキストファイルに)このように私の条件を設定したいと思い

/ROOT/NODE1/TXT [COUNT=2] 

この

のようなのxpathのn数はどのように簡単に、私はそこに使用することができますLINQ、XPATHをチェックしてカウントを取得しますか?事前に

おかげ

乾杯、あなたが行うことができます。この場合 カルティク

答えて

0
XDocument doc = XDocument.Load(xmlFilePath); 
int count = doc.Descendants("TXT").Count(); 

 XDocument doc = XDocument.Load(filePath); 
     var xPath = @"/ROOT/NODE1/TXT"; 
     int count = doc.Descendants(xPath.Substring(xPath.LastIndexOf("//") + 1)).Count(); 

が、それは一般的なケースではないのですが、あなたはあなたの状態についての詳細を説明しwhould強制的にXPath文字列を使用するには?

+0

ありがとうございました。代わりに(「TXT」)私は設定したXPAHTを提供することができますか?私はコード内の任意のXPATHをハードコードしたくない。 – KK99

+0

@Karthik K、私の更新を見てください。 –

+0

私はこれを試してみましょう。高速応答ありがとう – KK99

3

System.Xml.Xpathを確認すると、xpathを使用してXmlデータを処理できます。

XDocument doc = XDocument.Load(filePath); 
var xPath = @"/ROOT/NODE1/TXT"; 
int count = doc.XPathSelectElements(xPath).Count(); 
関連する問題