若我們利用 NodeList 取得節點集合後,若新增或刪除該集合內的節點,則 NodeList 馬上會進行更新,這就是 NodeList 具有隨時保持自身更新的特性,我們用簡單的例子來說明這項特性:
將以下 xml 檔案載入到 Java DOM 的 Document 文件內:
<rss version="2.0">
<channel>
<title>localhost</title>
<link>http://localhost/test.xml</link>
<description>test</description>
<item>
<title>google</title>
<link>http://www.google.com.com/</link>
<description></description>
</item>
<item>
<title>yahoo</title>
<link>http://tw.yahoo.com/</link>
<description></description>
</item>
</channel>
</rss>
以下為測試 NodeList 特性的 Method:
public void test(){
NodeList nodelist=document.getElementsByTagName("item");
//將 Document 的 item 集合存放至 NodeList
System.out.println("刪除前");
System.out.println("NodeList Length:"+nodelist.getLength());
System.out.println("第一個 item 的 title 標籤內容:"
+nodelist.item(0).getFirstChild().getFirstChild().getNodeValue());
nodelist.item(0).getParentNode().removeChild(nodelist.item(0));
//刪除第一個 item 元素
System.out.println("刪除後");
System.out.println("NodeList Length:"+nodelist.getLength());
System.out.println("第一個 item 的 title 標籤內容:"
+nodelist.item(0).getFirstChild().getFirstChild().getNodeValue());
}
下列為程式執行結果:
刪除前
NodeList Length:2
第一個 item 的 title 標籤內容:google
刪除後
NodeList Length:1
第一個 item 的 title 標籤內容:yahoo
由此可知,當 NodeList 內的節點集合受到更新或刪除時,NodeList 就會即時進行更新,故在使用 NodeList 時,要多加注意這項特性。
參考資料:
沒有留言:
張貼留言