HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2005の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2005 Tips > XML Tips メニュー> XPath Tips メニュー

04.検索式でヒットしたノードの件数を取得する

UPDATE:2006/07/31 

<< 前のTips  次のTips >>

 


 検索式を指定してノードを取得するにはナビゲータのEvaluateメソッドを使用します。
 ナビゲータのEvaluateメソッドで取得したノードリストはXPathNodeIteratorクラスとして取得し、XPathNodeIteratorが持つCountプロパティで件数を取得します。

 
サンプル1
//XPathドキュメントを作成
System.Xml.XPath.XPathDocument xmlDoc = 
    new System.Xml.XPath.XPathDocument(@"C:\Work\Test.xml");

//ナビゲータを作成
System.Xml.XPath.XPathNavigator xNavi = xmlDoc.CreateNavigator();

//検索式を指定して、ヒットしたノードをiteに格納
System.Xml.XPath.XPathNodeIterator ite =
    (System.Xml.XPath.XPathNodeIterator)xNavi.Evaluate("//personal_data[@id='ID00234']");

//検索式でヒットしたノードの件数を取得する
Console.WriteLine("選択したノードは" + ite.Count + "です");


 
サンプル2
//サンプル1で使用するXML
<?xml version="1.0" encoding="utf-8"?>
<address_list>
  <personal_data id="ID12345">
    <zip>123-4567</zip>
    <address>東京都内</address>
    <name>HIRO</name>
    <age>34</age>
  </personal_data>
  <personal_data id="ID00234">
    <zip>765-4321</zip>
    <address>アメリカ</address>
    <name>VB太郎</name>
    <age>28</age>
  </personal_data>
  <personal_data id="ID32401">
    <zip>000-1111</zip>
    <address>東京都内</address>
    <name>C#花子</name>
    <age>40</age>
  </personal_data>
</address_list>