Tambah Nod XML DOM

实例

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

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

Tambahkan satu node di belakang node anak terakhir
Contoh ini menggunakan kaedah appendChild() untuk menambahkan satu node anak kepada node yang ada.
Tambahkan satu node di sebelum node anak yang ditentukan
Contoh ini menggunakan kaedah insertBefore() untuk memasukkan satu node di sebelum node anak yang ditentukan.
Tambahkan satu sifat baru
Contoh ini menggunakan kaedah setAttribute() untuk menambahkan satu sifat baru.
Tambahkan data kepada node teks
Contoh ini menggunakan insertData() untuk memasukkan data ke dalam node teks yang ada.

Tambahkan node - appendChild()

Kaedah appendChild() menambahkan node anak kepada node yang ada.

Node baru akan ditambahkan (dipasang) di belakang mana-mana node anak yang ada.

Komen:Jika kedudukan node adalah penting, gunakan kaedah insertBefore().

Kod di bawah ini membuat elemen (<edition>) dan menambahkannya di belakang node anak terakhir elemen <book> pertama:

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

Pengertian contoh:

  1. Dengan menggunakan loadXMLDoc() Tetapkan "books.xmlDalam xmlDoc
  2. Buat satu node baru <edition>
  3. Letakkan node ini di dalam elemen <book> pertama

TIY

Pulihkan dan tambahkan satu elemen kepada semua elemen <book>:TIY

Masukkan node - insertBefore()

Kaedah insertBefore() digunakan untuk memasukkan node di sebelum node anak yang ditentukan.

Ketika kedudukan node adalah penting, kaedah ini amat berkesan.

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

Pengertian contoh:

  1. Dengan menggunakan loadXMLDoc() Tetapkan "books.xmlDalam xmlDoc
  2. Buat satu elemen node baru <book>
  3. Letakkan node ini di sebelum elemen node <book> terakhir

TIY

Jika parameter kedua insertBefore() adalah null, node baru akan ditambahkan di belakang node anak yang ada terakhir.

x.insertBefore(newNode,null) dan x.appendChild(newNode) boleh menambahkan satu lagi node anak kepada x.

Tambahkan sifat baru

方法 addAtribute() ialah yang tidak wujud.

Jika sifat tidak ada, setAttribute() boleh membuat sifat baru:

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

Pengertian contoh:

  1. Dengan menggunakan loadXMLDoc() Tetapkan "books.xmlDalam xmlDoc
  2. Tetapkan nilai sifat "edition" bagi elemen <book> pertama (buat) "first"

TIY

Komen:Jika sifat sudah ada, metode setAttribute() akan menindih nilai yang ada.

Menambah teks ke nod teks - insertData()

Metode insertData() akan menyisipkan data ke nod teks yang sudah ada.

Metode insertData() mempunyai dua parameter:

  • offset - tempat mulai menyisipkan huruf (dari 0)
  • string - string yang akan disisipkan

Blok kod di bawah ini akan menambah "Easy" ke nod teks pertama <title> XML yang telah dimuatkan:

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

TIY