Akses Noda DOM XML
通过 DOM,您能够访问 XML 文档中的每个节点。
访问节点
您可以通过三种方式来访问节点:
- 通过使用 getElementsByTagName() 方法
- 通过循环(遍历)节点树
- 通过利用节点的关系在节点树中导航
getElementsByTagName() 方法
getElementsByTagName()
返回拥有指定标签名的所有元素。
语法
node.getElementsByTagName("tagname");
Contoh
下例返回 x 元素下的所有 <title> 元素:
x.getElementsByTagName("title");
请注意,上面的例子仅返回 x 节点下的 <title> 元素。如需返回 XML 文档中的所有 <title> 元素,请使用:
xmlDoc.getElementsByTagName("title");
在这里,xmlDoc
就是文档本身(文档节点)。
DOM 节点列表
getElementsByTagName()
Method mengembalikan daftar noden (node list). Daftar noden adalah daftar dari noden.
x = xmlDoc.getElementsByTagName("title");
Untuk mengakses elemen <title> ketiga, Anda dapat menulis seperti ini:
Dapat diakses melalui nomor indeks x elemen <title>.
y = x[2];Keterangan:
Indeks dimulai dari 0.
Anda dapat menggunakan
Panjang daftar DOM noden
Atribut untuk menentukan panjang daftar noden (jumlah noden). Anda dapat menggunakan
length
Contoh
Atribut untuk mengulangi melintasi daftar noden: for (i = 0; i < x.length; i++) { var x = xmlDoc.getElementsByTagName("title"); }
//Di tempat ini dapat menulis kode untuk menangani setiap noden
Tipe noden Noden dokumen XML
documentElement
Atribut adalah nama noden. Atribut adalah root.
nodeName
Atribut adalah nama noden. nodeType
Atribut adalah tipe noden.
Anda akan belajar lebih banyak tentang atribut noden di bab berikutnya tutorial ini.
Melintasi noden
Kode di bawah ini mengulangi melintasi anak noden root (juga noden elemen):
Contoh
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i < x.length; i++) { //Proses hanya noden elemen (tipe 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Pengertian contoh:
- Dihypothetika anda sudah memuat "books.xml"Memuat ke
xmlDoc
- Mengambil anak noden elemen (xmlDoc)
- 检查每个子节点的节点类型。如果节点类型为 "
1
", adalah noden elemen - Jika adalah noden elemen, keluarkan nama noden
Navigasi hubungan noden
Kode di bawah ini menggunakan hubungan antar noden untuk navigasi di dalam pohon noden:
Contoh
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i < xlen; i++) { //Hanya mengendalikan noden elemen (tipe 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Pengertian contoh:
- Dihypothetika anda sudah memuat "books.xml"Memuat ke
xmlDoc
- Mengambil anak noden buah pertama book
- 将 "y" 变量设置为第一个 book 元素的第一个子节点
- 对于每个子节点(从第一个子节点 "
y
" 开始): - 检查每个子节点的节点类型。如果节点类型为 "
1
",则它是元素节点 - 如果是元素节点,则输出该节点的名称
- 将 "
y
" 变量设置为下一个同级节点,并再次运行循环