根據索引擷取的已排序節點
全球資訊網協會 (W3C) XML 文件物件模型 (DOM) 也說明了 NodeList;相對於能夠處理未排序節點集的 XmlNamedNodeMap,NodeList 具有處理已排序節點清單的功能。 Microsoft .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")
' Retrieve 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
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");
// Retrieve 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 屬性之外,還有 GetEnumerator 方法可對 XmlNodeList 中的節點集合提供 foreach
樣式反覆運算。 下列程式碼範例顯示 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
{
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。