Pagdaragang Node ng XML DOM

实例

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

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

Idagdag ang isang node sa likod ng pinakahuling sangay na kasapi
Ang halimbawa na ito ay gumagamit ng appendChild() na paraan para idagdag ang isang sangay na kasapi sa isang umiiral na node.
Idagdag ang isang node sa harap ng tinukoy na sangay na kasapi
Ang halimbawa na ito ay gumagamit ng insertBefore() na paraan para idagdag ang isang node sa harap ng tinukoy na sangay na kasapi.
Magdagdag ng isang bagong katangian
Ang halimbawa na ito ay gumagamit ng setAttribute() na paraan para idagdag ang isang bagong katangian.
Idagdag ng data sa text na kasapi
Ang halimbawa na ito ay gumagamit ng insertData() para idagdag ang data sa isang umiiral na text na kasapi.

Idagdag ng Node - appendChild()

Ang appendChild() na paraan ay ginagamit para idagdag ang isang sangay na kasapi sa isang umiiral na node.

Ang bagong node ay idadagdag (idagdag) sa likod ng anumang naunang sangay na kasapi.

注释:kung ang posisyon ng node ay mahalaga, gamitin ang insertBefore() na paraan.

Ang mga code snippet na ito ay naglunsad ng isang elemento (<edition>) at idagdag ito sa likod ng pinakahuling sangay na kasapi ng pinakahuling <book> na elemento:

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

例子解释:

  1. 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中
  2. maglunsad ng isang bagong node <edition>
  3. idagdag ang node sa unang <book> na elemento

TIY

magpaikot at idagdag ng isang elemento sa lahat ng <book> na elemento:TIY

Idagdag ng Node - insertBefore()

Ang insertBefore() na paraan ay ginagamit para idagdag ang isang node sa harap ng tinukoy na sangay na kasapi.

kapag ang posisyon ng naadagdag na node ay mahalaga, ang paraan na ito ay lubos na kapaki-pakinabang.

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. maglunsad ng isang bagong elemento na kasapi <book>
  3. idagdag ang node sa harap ng pinakahuling <book> na elemento na kasapi

TIY

kung ang ikalawang argumento ng insertBefore() ay null, ang bagong node ay idadagdag sa likod ng pinakahuling naunang sangay na kasapi.

x.insertBefore(newNode,null) at x.appendChild(newNode) mga ito ay pwedeng idagdag sa x ng isang bagong sangay na kasapi.

Magdagdag ng bagong katangian

addAtribute() na paraan ay wala.

如果属性不存在,则 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