天天看點

XML DOM Node List

節點清單由 getElementsByTagName() 方法和 childNodes 屬性傳回。

下面的例子使用 XML 檔案 books.xml。

函數 loadXMLDoc(),位于外部 JavaScript 中,用于加載 XML 檔案。

<dl></dl>

<dt></dt>

從第一個 &lt;title&gt; 元素擷取文本

<dd>本例使用 getElementsByTagName() 方法從 "books.xml" 中的第一個 &lt;title&gt; 元素擷取文本。</dd>

通過使用 length 屬性來循環節點

<dd>本例使用節點清單和 length 屬性來循環 "books.xml" 中的所有 &lt;title&gt; 元素。</dd>

擷取元素的屬性

<dd>本例使用屬性清單從 "books.xml" 中的第一個 &lt;title&gt; 元素擷取屬性。 </dd>

當使用諸如 childNodes 或 getElementsByTagName() 屬性或方法時,會傳回 NodeList 對象。

NodeList 對象表示節點的清單,以 XML 中的相同順序。

使用從 0 開始的下标來通路節點清單中的節點。

下面的圖像表示 "books.xml" 中 &lt;title&gt; 元素的節點清單:

下面的代碼片段通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中,并傳回 "books.xml" 中 title 元素的一個節點清單:

以上語句執行之後,x 成為一個 NodeList 對象。

下面的代碼片段從節點清單 x 中的第一個 &lt;title&gt; 元素中傳回文本:

在以上語句執行之後,txt = "Everyday Italian"。

TIY

NodeList 對象會保持自身的更新。如果删除或添加了元素,清單會自動更新。

節點清單的 length 屬性是清單中節點的數量。

下面的代碼片段通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc,并傳回 "books.xml" 中 &lt;title&gt; 元素的數量:

在上面的語句執行之後,x = 4。

節點清單的長度可用于循環清單中所有的元素。

下面的代碼片段使用 length 屬性來周遊 &lt;title&gt; 元素的清單:

輸出:

通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc

設定儲存所有 title 元素的節點清單的 x 變量

從所有 &lt;title&gt; 元素的文本節點輸出值

元素節點的 attributes 屬性傳回屬性節點的清單。

這被稱為 Named Node Map,除了方法和屬性上的一些差别以為,它與節點清單相似。

屬性清單會保持自身的更新。如果删除或添加屬性,這個清單會自動更新。

下面的代碼片段通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中,并從 "books.xml" 中的第一個 &lt;book&gt; 元素傳回屬性節點的一個清單:

以上代碼執行之後,x.length 等于屬性的數量,可使用 x.getNamedItem() 傳回屬性節點。

下面的代碼片段一個 book 的 "category" 屬性的值,以及其屬性的數量:

通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中

把 x 變量設定為第一個 &lt;book&gt; 元素的所有屬性的一個清單

從 "category" 屬性輸出其值

輸出屬性清單的長度