最新的Web開發教程
 

XML DOM刪除節點


removeChild()方法刪除指定的節點。

removeAttribute()方法刪除指定的屬性。


試一試 - 示例

這些例子使用XML文件的Books.xml

刪除元素節點
本例使用removeChild()刪除第一個<book>元素。

刪除當前元素節點
本例使用parentNode和removeChild()刪除當前的<book>元素。

刪除文本節點
本例使用removeChild()刪除從第一個文本節點<title>元素。

清除文本節點的文本
本例使用nodeValue()屬性來清除前的文本節點<title>元素。

移除通過名稱獲得屬性
本例使用removeAttribute()來刪除"category"從第一屬性<book>元素。

通過刪除對象屬性
本例使用removeAttributeNode()從所有刪除所有屬性<book>元素。

×


刪除元素節點

removeChild()方法刪除指定的節點。

當一個節點被刪除,所有它的子節點也被去除。

此代碼將刪除第一個<book>從加載XML元素:

y = xmlDoc.getElementsByTagName("book")[0];

xmlDoc.documentElement.removeChild(y);
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入xmlDoc中
  2. 設置變量y是元素節點刪除
  3. 通過刪除元素節點removeChild()方法從父節點

刪除自己 - 刪除當前節點

removeChild()的方法是刪除指定節點的唯一途徑。

當你瀏覽到你想刪除的節點,也可以使用parentNode屬性和刪除該節點removeChild()方法:

x = xmlDoc.getElementsByTagName("book")[0];

x.parentNode.removeChild(x);
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 設置變量y是元素節點刪除
  3. 通過使用parentNode屬性和刪除元素節點removeChild()方法

刪除文本節點

所述removeChild()方法也可以用於去除文本節點:

x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 設置變量x是第一個標題元素節點
  3. 設置變量y是文本節點刪除
  4. 通過刪除元素節點removeChild()方法從父節點

這是不是很常見使用removeChild()只是用來刪除節點的文本。 nodeValue屬性可以用來代替。 見下段。


清除文本節點

nodeValue屬性可用於更改文本節點的值:

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "";
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 拿到第一個冠軍元素的第一個子節點。
  3. 使用nodeValue屬性來清除從文本節點的文本

遍歷和更改所有的文本節點<title>元素: 試一試


按名刪除屬性節點

removeAttribute()方法刪除其名稱的屬性節點。

例如: removeAttribute('category')

此代碼刪除"category"中的第一個屬性<book>元素:

x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category");
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 使用getElementsByTagName()來獲取book節點
  3. 刪除"category"屬性形成第一本書元素節點

遍歷並刪除"category"的所有屬性<book>元素: 試一試


根據對象刪除屬性節點

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);
    }
}
試一試»

例子解釋:

  1. 假設“ 的books.xml ”載入到xmlDoc中
  2. 使用getElementsByTagName()來獲取所有book節點
  3. 對於每個book元素檢查是否有任何屬性
  4. 雖然在一本書中的元素是屬性,刪除屬性