XML DOM 改變節點值

nodeValue 屬性用于改變節點值。

setAttribute() 方法用于改變屬性值。

改變元素的值

在 DOM 中,一切都是節點。元素節點沒有文本值。

元素節點的文本值存儲在子節點中。該節點被稱為文本節點。

如需更改元素的文本值,必須更改元素的文本節點的值。

改變文本節點的值

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

下面的代碼更改第一個 <title> 元素的文本節點值:

例子 1

xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue = "潮菜天下"

親自試一試

例子解釋:

  1. 假設 books.xml 被加載到 xmlDoc
  2. 獲取 <title> 元素的第一個子節點
  3. 把此文本節點的節點值更改為 "潮菜天下"

例子 2

循環并更改所有 <title> 元素的文本節點:

for (i = 0; i < x.length; i++) {
    x[i].childNodes[0].nodeValue = "已更改的文本";
}

親自試一試

改變屬性的值

在 DOM 中,屬性也是節點。與元素節點不同的是,屬性節點擁有文本值。

更改屬性值的方法是更改其文本值。

可以通過使用 setAttribute() 方法或屬性節點的 nodeValue 屬性來完成這個任務。

使用 setAttribute() 改變屬性

setAttribute() 方法設置已有屬性的值,或創建新屬性

setAttribute() 方法可更改屬性的值。如果該屬性不存在,則創建一個新屬性。

這段代碼更改 <book> 元素的 category 屬性:

例子 1

xmlDoc.getElementsByTagName("book")[0].setAttribute("category","烹飪");

親自試一試

例子解釋:

  1. 假設 books.xml 已被加載到 xmlDoc
  2. 獲取第一個 <book> 元素
  3. 將 "category" 屬性的值更改為 "烹飪"

例子 2

循環遍歷所有 <title> 元素并添加新屬性:

x = xmlDoc.getElementsByTagName('title');
for (i = 0; i < x.length; i++) { 
    x[i].setAttribute("edition","第一版");    
}

親自試一試

注意:如果該屬性不存在,則會創建一個新屬性(帶有指定的名稱和值)。

使用 nodeValue 改變屬性

nodeValue 屬性是屬性節點的值

更改 nodeValue 屬性可更改屬性的值。

實例

xmlDoc.getElementsByTagName("book")[0].getAttributeNode("category").nodeValue = "烹飪";

親自試一試

例子解釋:

  1. 假設 books.xml 已被加載到 xmlDoc
  2. 獲取第一個 <book> 元素的 "category" 屬性
  3. 將屬性節點的值更改為 "烹飪"