XML DOM 添加節點

實例

下面的例子使用 XML 文件 books.xml

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

在最后一個子節點之后添加一個節點
本例使用 appendChild() 方法向一個存在的節點添加一個子節點。
在指定的子節點之前添加一個節點
本例使用 insertBefore() 方法在一個指定的子節點之前插入一個節點。
添加一個新屬性
本例使用 setAttribute() 方法添加一個新的屬性。
向文本節點添加數據
本例使用 insertData() 把數據插入一個已存在的文本節點中。

添加節點 - appendChild()

appendChild() 方法向已存在的節點添加子節點。

新節點會添加(追加)到任何已存在的子節點之后。

注釋:如果節點的位置很重要,請使用 insertBefore() 方法。

下面的代碼片段創建一個元素(<edition>),并把它添加到第一個 <book> 元素最后一個子節點后面:

xmlDoc=loadXMLDoc("books.xml");
newel=xmlDoc.createElement("edition");
x=xmlDoc.getElementsByTagName("book")[0];
x.appendChild(newel);

例子解釋:

  1. 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 創建一個新節點 <edition>
  3. 把這個節點追加到第一個 <book> 元素

TIY

循環并把一個元素追加到所有 <book> 元素:TIY

插入節點 - insertBefore()

insertBefore() 方法用于在指定的子節點之前插入節點。

在被添加的節點的位置很重要時,此方法很有用。

xmlDoc=loadXMLDoc("books.xml");
newNode=xmlDoc.createElement("book");
x=xmlDoc.documentElement;
y=xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);

例子解釋:

  1. 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 創建一個新的元素節點 <book>
  3. 把這個節點插到最后一個 <book> 元素節點之前

TIY

如果 insertBefore() 的第二個參數是 null,新節點將添加到最后一個已有的子節點之后。

x.insertBefore(newNode,null)x.appendChild(newNode) 都可以向 x 追加一個新的子節點。

添加新屬性

addAtribute() 這個方法是不存在的。

如果屬性不存在,則 setAttribute() 可創建一個新的屬性:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book');
x[0].setAttribute("edition","first");

例子解釋:

  1. 通過使用 loadXMLDoc() 把 "books.xml" 載入 xmlDoc 中
  2. 把第一個 <book> 元素的 "edition" 屬性的值設置(創建)"first"

TIY

注釋:如果屬性已存在,setAttribute() 方法將覆蓋已有的值。

向文本節點添加文本 - insertData()

insertData() 方法將數據插入已有的文本節點中。

insertData() 方法有兩個參數:

  • offset - 在何處開始插入字符(以 0 開始)
  • string - 要插入的字符串

下面的代碼片段將把 "Easy" 添加到已加載的 XML 的第一個 <title> 元素的文本節點:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.insertData(0,"Hello ");

TIY