XML DOM 刪除節點
removeChild() 方法刪除指定的節點。
removeAttribute() 方法刪除指定的屬性。
刪除元素節點
removeChild() 方法刪除指定的節點。
當一個節點被刪除時,其所有子節點也會被刪除。
此程式碼將從已載入的 xml 中刪除第一個 <book> 元素
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 將變數 y 設定為要刪除的元素節點
- 使用父節點的 removeChild() 方法刪除元素節點
刪除自身 - 刪除當前節點
removeChild() 方法是刪除指定節點的唯一方法。
當您已導航到要刪除的節點時,可以使用 parentNode 屬性和 removeChild() 方法刪除該節點
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 將變數 y 設定為要刪除的元素節點
- 使用 parentNode 屬性和 removeChild() 方法刪除元素節點
刪除文字節點
removeChild() 方法也可用於刪除文字節點
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 將變數 x 設定為第一個 title 元素節點
- 將變數 y 設定為要刪除的文字節點
- 使用父節點的 removeChild() 方法刪除元素節點
僅使用 removeChild() 從節點中刪除文字並不常見。可以使用 nodeValue 屬性代替。參見下一段。
清除文字節點
nodeValue 屬性可用於更改文字節點的值
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 獲取第一個 title 元素的第一個子節點。
- 使用 nodeValue 屬性清除文字節點中的文字
按名稱刪除屬性節點
removeAttribute() 方法按其名稱刪除屬性節點。
示例:removeAttribute('category')
此程式碼刪除第一個 <book> 元素中的 "category" 屬性
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 使用 getElementsByTagName() 獲取 book 節點
- 從第一個 book 元素節點中刪除 "category" 屬性
迴圈並刪除所有 <book> 元素的 "category" 屬性:親自嘗試
按物件刪除屬性節點
removeAttributeNode() 方法使用節點物件作為引數刪除屬性節點。
示例:removeAttributeNode(x)
此程式碼刪除所有 <book> 元素的所有屬性
示例
x = xmlDoc.getElementsByTagName("book");
for (i = 0; i < x.length; i++) {
while (x[i].attributes.length > 0) {
attnode = x[i].attributes[0];
old_att = x[i].removeAttributeNode(attnode);
}
}
自己動手試一試 »
示例說明
- 假設 books.xml 已載入到 xmlDoc 中
- 使用 getElementsByTagName() 獲取所有 book 節點
- 對於每個 book 元素,檢查是否存在任何屬性
- 當 book 元素中存在屬性時,刪除該屬性