Menghapus Node XML DOM

Metode removeChild() menghapus node yang ditentukan.

Metode removeAttribute() menghapus atribut yang ditentukan.

Contoh

Contoh di bawah ini menggunakan berkas XML books.xml.

Fungsi loadXMLDoc(),berada di dalam JavaScript eksternal, digunakan untuk memuat berkas XML.

Hapus elemen node
Contoh ini menggunakan removeChild() untuk menghapus elemen <book> pertama.
Menghapus elemen node saat ini
Contoh ini menggunakan parentNode dan removeChild() untuk menghapus elemen <book> saat ini.
Menghapus node teks
Contoh ini menggunakan removeChild() untuk menghapus node teks elemen <title> pertama.
Mengosongkan teks node teks
Contoh ini menggunakan atribut nodeValue() untuk mengosongkan node teks elemen <title> pertama.
Menghapus atribut berdasarkan nama
Contoh ini menggunakan removeAttribute() untuk menghapus atribut "category" dari elemen <book> pertama.
Menghapus atribut berdasarkan objek
Contoh ini menggunakan removeAttributeNode() untuk menghapus semua atribut elemen <book>.

Hapus elemen node

Metode removeChild() menghapus node yang ditentukan.

Ketika sebuah node dihapus, semua node anaknya juga akan dihapus.

Kode potongan di bawah ini akan menghapus elemen <book> pertama dari xml yang diunggah:

xmlDoc=loadXMLDoc("books.xml");
y=xmlDoc.getElementsByTagName("book")[0];
xmlDoc.documentElement.removeChild(y); 

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Tetapkan variabel y untuk elemen node yang akan dihapus
  • Menghapus node elemen melalui penggunaan metode removeChild() dari node induk

TIY

Menghapus diri sendiri - menghapus node yang saat ini

Metode removeChild() adalah metode satu-satunya yang dapat menghapus node yang ditentukan.

Ketika Anda sudah menempatkan node yang akan dihapus, Anda dapat menghapusnya melalui penggunaan atribut parentNode dan metode removeChild():

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x); 

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Tetapkan variabel y untuk elemen node yang akan dihapus
  • Menghapus elemen node ini melalui penggunaan atribut parentNode dan metode removeChild()

TIY

Menghapus node teks

Metode removeChild() dapat digunakan untuk menghapus node teks:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title")[0];
y=x.childNodes[0];
x.removeChild(y); 

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Tetapkan variabel x untuk node elemen pertama title
  • Tetapkan variabel y untuk node teks yang akan dihapus
  • Menghapus node melalui penggunaan metode removeChild() dari node induk

TIY

Tidak sering digunakan removeChild() untuk menghapus teks dari node. Dapat digantikan dengan atribut nodeValue. Lihat paragraf berikutnya.

Mengosongkan node teks

Atribut nodeValue dapat digunakan untuk mengubah atau mengosongkan nilai node teks:

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

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Tetapkan variabel x untuk node teks elemen pertama title
  • Gunakan atribut nodeValue untuk mengosongkan teks node teks

TIY

Lakukan perulangan dan ubah semua node teks elemen <title>: TIY

Menghapus node atribut berdasarkan nama

Metode removeAttribute(name) digunakan untuk menghapus node atribut berdasarkan nama.

Contoh: removeAttribute('category')

Kode potongan di bawah ini menghapus atribut "category" dari elemen pertama <book>:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book");
x[0].removeAttribute("category"); 

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Menggunakan getElementsByTagName() untuk mendapatkan node book
  • Hapus atribut "category" dari node elemen book pertama

TIY

Telusuri dan hapus semua atribut "category" dari semua elemen <book>: TIY.

Menghapus node atribut berdasarkan objek

Metode removeAttributeNode(node) menggunakan objek Node sebagai parameter untuk menghapus node atribut.

Contoh: removeAttributeNode(x)

Kode berikut menghapus semua atribut dari elemen <book>:

xmlDoc=loadXMLDoc("books.xml");
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);
  }
}

Contoh penjelasan:

  • Dengan menggunakan loadXMLDoc() Buat \books.xml"Memuat xmlDoc"
  • Gunakan getElementsByTagName() untuk mendapatkan semua node book
  • Periksa setiap elemen book apakah memiliki atribut
  • Jika ada atribut di dalam elemen book, hapus atribut tersebut

TIY