Tutorial XML DO...LOG MASUK
Tutorial XML DOM
pengarang:php.cn  masa kemas kini:2022-04-13 15:27:56

akses DOM


XML DOM - Nod Akses


DOM memberikan anda akses kepada setiap nod dalam dokumen XML.



tryitimg.gif Cuba - Contoh


Contoh berikut menggunakan fail XML books.xml .

Fungsi loadXMLDoc(), terletak dalam JavaScript luaran, digunakan untuk memuatkan fail XML.

Gunakan nombor indeks dalam senarai nod untuk mengakses nod
Contoh ini menggunakan kaedah getElementsByTagname() untuk mendapatkan elemen <title> ketiga dalam "books.xml".

Gunakan atribut panjang untuk melintasi nod
Contoh ini menggunakan atribut panjang untuk melintasi semua elemen <title>

Lihat jenis nod elemen
Contoh ini menggunakan atribut nodeType untuk mendapatkan jenis nod elemen akar dalam "books.xml".

Nod elemen traverse
Contoh ini menggunakan atribut nodeType untuk memproses nod elemen dalam "books.xml".

Gunakan perhubungan nod untuk merentasi nod elemen
Contoh ini menggunakan atribut nodeType dan atribut nextSibling untuk memproses nod elemen dalam "books.xml".


Mengakses Nod

Anda boleh mengakses nod dalam tiga cara:

1 Dengan menggunakan kaedah getElementsByTagName().

2. Dengan menggelung (merentasi) pokok nod.

3. Navigasi dalam pepohon nod dengan memanfaatkan perhubungan nod.


kaedah getElementsByTagName()

getElementsByTagName() mengembalikan semua elemen dengan nama teg yang ditentukan.

Sintaks

nod.getElementsByTagName("tag");

Instance

Contoh berikut mengembalikan semua <title> elemen di bawah elemen x:

x.getElementsByTagName("title");

Sila ambil perhatian bahawa perkara di atas Instance hanya mengembalikan elemen <title> Untuk mengembalikan semua <title> elemen dalam dokumen XML, gunakan:

xmlDoc.getElementsByTagName("title");

Di sini, xmlDoc ialah dokumen itu sendiri ( nod dokumen).


Senarai nod DOM (Senarai Nod)

kaedah getElementsByTagName() mengembalikan senarai nod. Senarai nod ialah tatasusunan nod.

Kod berikut menggunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc, dan kemudian menyimpan senarai <title> dalam pembolehubah x:

xmlDoc= loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");

Elemen <title> dalam x boleh diakses melalui nombor indeks . Untuk mengakses <tajuk> ketiga, anda boleh menulis:

y=x[2];

Nota: Indeks bermula dari 0.

Dalam bab seterusnya dalam tutorial ini, anda akan mengetahui lebih lanjut tentang Senarai Nod.


Panjang Senarai Nod DOM Atribut panjang

mentakrifkan panjang senarai nod (iaitu bilangan nod).

Anda boleh mengulangi senarai nod dengan menggunakan atribut panjang:

Instance

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"></script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br>");
  }
</script>
</body>
</html>

Jalankan instance»

Klik butang "Jalankan Contoh" untuk melihat contoh dalam talian

Penjelasan contoh:

  1. Gunakan loadXMLDoc() untuk memuatkan " books.xml" ke dalam xmlDoc

  2. Dapatkan semua <title> nod elemen

  3. Output nilai nod teks setiap <title> ; elemen


Jenis Nod

Atribut documentElement bagi dokumen XML ialah nod akar. Atribut

nodeName

nod ialah nama nod. Atribut

nodeType

nod ialah jenis nod.

Anda akan mengetahui lebih lanjut tentang sifat nod dalam bab seterusnya tutorial ini.

Cubalah


Nod lintasan

Kod berikut merentasi nod anak nod akar, yang juga nod elemen:

Contoh

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"></script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
if (x[i].nodeType==1)
  {//Process only element nodes (type 1) 
  document.write(x[i].nodeName);
  document.write("<br>");
  } 
}
</script>
</body>
</html>

Jalankan instance»

Klik butang "Run instance" untuk melihat instance dalam talian

Instance penjelasan:

  1. Gunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc

  2. Dapatkan nod anak unsur akar

  3. Semak jenis nod setiap nod anak. Jika jenis nod ialah "1", ia adalah nod elemen

  4. Jika ia adalah nod elemen, nama nod ialah output


Perhubungan Nod Navigasi

Kod berikut menavigasi pepohon nod menggunakan perhubungan nod:

Instance

<!DOCTYPE html>
<html>
<head>
<script src="loadxmldoc.js"></script>
</head>
<body>

<script>
xmlDoc=loadXMLDoc("books.xml");

x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Process only element nodes (type 1)
  document.write(y.nodeName + "<br>");
  }
y=y.nextSibling;
}
</script>
</body>
</html>

Run Instance»

Klik butang "Run Example" untuk melihat contoh dalam talian

  1. Gunakan loadXMLDoc() untuk memuatkan "books.xml" ke dalam xmlDoc

  2. Dapatkan nod anak bagi elemen buku pertama

  3. Tetapkan pembolehubah "y" kepada nod anak pertama bagi elemen buku pertama

  4. Untuk setiap nod anak (nod anak pertama bermula dari "y"), semak jenis nod, jika jenis nod ialah "1", ia adalah nod elemen

  5. Jika ia adalah nod elemen, keluarkan nama nod

  6. Tetapkan pembolehubah "y" kepada nod adik beradik seterusnya dan jalankan gelung sekali lagi


Laman web PHP Cina