Tutorial XML

RUMAH XML Pengantar XML XML Cara menggunakan Pohon XML Sintaks XML Elemen XML Atribut XML Ruang Nama XML Tampilan XML XML HttpRequest Pengurai XML XML DOM XML XPath XML XSLT XML XQuery XML XLink Validator XML XML DTD Skema XML Server XML Contoh XML Kuis XML Sertifikat XML

XML AJAX

Pengenalan AJAX AJAX XMLHttp Permintaan AJAX Tanggapan AJAX File XML AJAX AJAX PHP AJAX ASP Basis Data AJAX Aplikasi AJAX Contoh AJAX

XML DOM

Pengenalan DOM Node DOM Mengakses DOM Info Simpul DOM Daftar Simpul DOM Melintasi DOM Navigasi DOM DOM Dapatkan Nilai DOM Ubah Node DOM Hapus Node DOM Ganti Node DOM Buat Node DOM Tambahkan Node Node Klon DOM Contoh DOM

Tutorial XPath

Pengenalan XPath Node XPath Sintaks XPath Sumbu XPath Operator XPath Contoh XPath

Tutorial XSLT

Pengenalan XSLT Bahasa XSL Transformasi XSLT XSLT <templat> XSLT <nilai-dari> XSLT <untuk-setiap> XSLT <sort> XSLT <jika> XSLT <pilih> Terapkan XSLT XSLT di Klien XSLT di Server XSLT Sunting XML Contoh XSLT

Tutorial XQuery

Pengenalan XQuery Contoh XQuery XQuery FLWOR HTML XQuery Persyaratan XQuery Sintaks XQuery Tambahkan XQuery XQuery Pilih Fungsi XQuery

XML DTD

Pengenalan DTD Blok Bangunan DTD Elemen DTD Atribut DTD Elemen DTD vs Attr Entitas DTD Contoh DTD

Skema XSD

Pengenalan XSD XSD Bagaimana caranya? XSD <skema> Elemen XSD Atribut XSD Pembatasan XSD

Kompleks XSD

Elemen XSD XSD Kosong Elemen XSD Saja Hanya Teks XSD Campuran XSD Indikator XSD XSD <apa saja> XSD <anyAttribute> Pergantian XSD Contoh XSD

Data XSD

String XSD Tanggal XSD XSD Numerik XSD Lain-lain Referensi XSD

Layanan Web

Layanan XML XML WSDL XML SOAP XML RDF XML RSS

Referensi

Jenis Node DOM Simpul DOM Daftar Simpul DOM DOM BernamaNodeMap Dokumen DOM Elemen DOM Atribut DOM Teks DOM DOM CDATA Komentar DOM DOM XMLHttpRequest Pengurai DOM Elemen XSLT Fungsi XSLT/XPath

XML DOM - Menavigasi Node


Node dapat dinavigasi menggunakan hubungan node.

×

Header


Menavigasi DOM Node

Mengakses node di pohon node melalui hubungan antar node, sering disebut "navigasi node".

Dalam XML DOM, hubungan simpul didefinisikan sebagai properti ke simpul:

  • parentNode
  • anakNode
  • anak pertama
  • anak terakhir
  • saudara berikutnya
  • saudara sebelumnya

Gambar berikut mengilustrasikan bagian dari pohon simpul dan hubungan antar simpul di books.xml :

Pohon simpul


DOM - Node Induk

Semua node memiliki tepat satu node induk. Kode berikut menavigasi ke simpul induk <book>:

Contoh

function myFunction(xml) {
var xmlDoc = xml.responseXML;
    var x = xmlDoc.getElementsByTagName("book")[0];
    document.getElementById("demo").innerHTML = x.parentNode.nodeName;
}

Contoh menjelaskan:

  1. Muat " books.xml " ke dalam xmlDoc
  2. Dapatkan elemen <book> pertama
  3. Keluarkan nama simpul dari simpul induk "x"


Hindari Node Teks Kosong

Firefox, dan beberapa peramban lain, akan memperlakukan spasi kosong atau baris baru sebagai simpul teks, sedangkan Internet Explorer tidak.

Ini menyebabkan masalah saat menggunakan properti: firstChild, lastChild, nextSibling, PreviousSibling.

Untuk menghindari navigasi ke node teks kosong (spasi dan karakter baris baru di antara node elemen), kami menggunakan fungsi yang memeriksa jenis node:

function get_nextSibling(n) {
    var y = n.nextSibling;
    while (y.nodeType! = 1) {
        y = y.nextSibling;
    }
    return y;
}

Fungsi di atas memungkinkan Anda untuk menggunakan get_nextSibling( node ) alih-alih properti node .nextSibling.

Kode menjelaskan:

Node elemen adalah tipe 1. Jika simpul saudara bukan simpul elemen, ia pindah ke simpul berikutnya sampai simpul elemen ditemukan. Dengan cara ini, hasilnya akan sama di Internet Explorer dan Firefox.


Dapatkan Elemen Anak Pertama

Kode berikut menampilkan simpul elemen pertama dari <book> pertama:

Contoh

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
        myFunction(this);
    }
};
xhttp.open("GET", "books.xml", true);
xhttp.send();

function myFunction(xml) {
    var xmlDoc = xml.responseXML;
    var x = get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
    document.getElementById("demo").innerHTML = x.nodeName;
}

//check if the first node is an element node
function get_firstChild(n) {
    var y = n.firstChild;
    while (y.nodeType != 1) {
        y = y.nextSibling;
    }
    return y;
}
</script>

</body>
</html>

Keluaran:

title

Contoh menjelaskan:

  1. Muat " books.xml " ke dalam xmlDoc
  2. Gunakan fungsi get_firstChild pada simpul elemen <book> pertama untuk mendapatkan simpul anak pertama yang merupakan simpul elemen
  3. Keluarkan nama simpul dari simpul anak pertama yang merupakan simpul elemen

Lebih Banyak Contoh


Contoh ini menggunakan metode lastChild() dan fungsi kustom untuk mendapatkan node anak terakhir dari sebuah node


Contoh ini menggunakan metode nextSibling() dan fungsi khusus untuk mendapatkan node saudara berikutnya dari sebuah node


Contoh ini menggunakan metode PreviousSibling() dan fungsi kustom untuk mendapatkan node saudara sebelumnya dari sebuah node