インデックスによる順序付けられたノードの取得
XmlNamedNodeMap が順序付けられていないセットを処理するのに対し、W3C DOM には、順序付けられたノードのリストを処理する NodeList も定義されています。.NET Framework では、NodeList は XmlNodeList と呼ばれます。XmlNodeList を返すメソッドとプロパティは次のとおりです。
- XmlNode.ChildNodes
- XmlDocument.GetElementsByTagName
- XmlElement.GetElementsByTagName
- XmlNode.SelectNodes
XmlNodeList には Count プロパティがあり、次のコード例に示すように、ループを記述して XmlNodeList のノードを反復処理するために使用できます。
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")
' Retrive all book titles..
Dim root as XmlElement = doc.DocumentElement
Dim elemList as XmlNodeList = root.GetElementsByTagName("title")
Dim i as integer
for i=0 to elemList.Count-1
' Display all book titles in the Node List.
Console.WriteLine(elemList.ItemOf(i).InnerXml)
next
[C#]
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Retrive all book titles.
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("title");
for (int i=0; i < elemList.Count; i++)
{
// Display all book titles in the Node List.
Console.WriteLine(elemList[i].InnerXml);
}
Count プロパティの他に、XmlNodeList のノード コレクションに対して foreach
スタイルの反復処理を可能にする GetEnumerator メソッドもあります。foreach
ステートメントの使用方法を次のコード例に示します。
Dim doc As New XmlDocument()
doc.Load("books.xml")
' Get book titles.
Dim root As XmlElement = doc.DocumentElement
Dim elemList As XmlNodeList = root.GetElementsByTagName("title")
Dim ienum As IEnumerator = elemList.GetEnumerator()
' Loop over the XmlNodeList using the enumerator ienum
While ienum.MoveNext()
' Display the book title.
Dim title As XmlNode = CType(ienum.Current, XmlNode)
Console.WriteLine(title.InnerText)
End While
[C#]
{
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Get book titles.
XmlElement root = doc.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("title");
IEnumerator ienum = elemList.GetEnumerator();
// Loop over the XmlNodeList using the enumerator ienum
while (ienum.MoveNext())
{
// Display the book title.
XmlNode title = (XmlNode) ienum.Current;
Console.WriteLine(title.InnerText);
}
}
XmlNodeList で利用可能なメソッドとプロパティの詳細については、「XmlNodeList メンバ」を参照してください。