Pakikipagdala ng DOM ng XML
Sa pamamagitan ng DOM, maaari mong makapag-access ng bawat node sa XML na dokumento.
Pag-access ng node
Maaari mong makapag-access ng node sa tatlong paraan:
- Sa pamamagitan ng paggamit ng getElementsByTagName() na paraan
- Sa pamamagitan ng pag-uikot (pagtatala) ng puno ng node
- Sa pamamagitan ng paggamit ng relasyon ng node sa puno ng node
getElementsByTagName() na paraan
getElementsByTagName()
Nagbibigay ng lahat ng elemento na may tinukoy na pangalan ng tag.
Grammar
node.getElementsByTagName("tagname");
Halimbawa
Sa mga sumusunod na halimbawa, ang x na elemento ay nagbibigay ng lahat ng <title> na elemento:
x.getElementsByTagName("title");
Pansin, ang halimbawa sa itaas ay tumutugon lamang sa mga <title> na elemento sa x na elemento. Kung gusto mong makakuha ng lahat ng <title> na elemento sa XML na dokumento, gamitin:
xmlDoc.getElementsByTagName("title");
Dito,xmlDoc
ay ang mismong dokumento (node ng dokumento).
Listahan ng DOM na elemento
getElementsByTagName()
方法返回节点列表(node list)。节点列表是节点的数组。
x = xmlDoc.getElementsByTagName("title");
Ang paraan ay binabalik ang listahan ng tugma (node list). Ang listahan ng tugma ay ang array ng tugma.
x = xmlDoc.getElementsByTagName("title");
Maaari mong aksesihin ang <title> na tugma sa x sa pamamagitan ng index na numero. Kung gusto mong aksesihin ang ikatlong <title>, maaari kang gumawa ng ganito:y = x[2];
Komento:
Maaari mong gamitin ang katangian upang tukuyin ang haba ng listahan ng tugma (bilang ng tugma).
Ang index ay nagsisimula sa 0.
DOM Tugma List Length Maaari mong gamitin ang katangian upang tukuyin ang haba ng listahan ng tugma (bilang ng tugma).
length
Halimbawa
Katangian upang maglalakbay ng paglalakbay sa listahan ng tugma: for (i = 0; i <x.length; i++) { var x = xmlDoc.getElementsByTagName("title"); }
// Dapat ilagay ang kodigo ng pagproseso ng bawat tugma dito
Uri ng tugma Ang tugma ng dokumentong XML
documentElement
Ang katangian ng tugma ay ang pangalan ng tugma. Ang katangian ay ang pangunahing tugma.
nodeName
Ang katangian ng tugma ay ang pangalan ng tugma. nodeType
Ang mga katangian ay ang uri ng tugma.
Makikita mo sa susunod na kabanata ng tutorial ang karagdagang kaalaman tungkol sa mga katangian ng tugma.
Paglalakbay sa tugma
Ang sumusunod na kodigo ay naglalakbay ng isang paglalakbay sa mga anak na tugma ng pangunahing tugma (ay elemento na tugma):
Halimbawa
txt = ""; x = xmlDoc.documentElement.childNodes; for (i = 0; i <x.length; i++) { // Lapitan lamang ang mga elemento na elemento (type 1) if (x[i].nodeType == 1) { txt += x[i].nodeName + "<br>"; } }
Panghahayag:
- Ipagpalagay na iyong dinagdagan ang "books.xml" na dinadala sa
xmlDoc
- Kumuha ng mga anak na elemento ng pangunahing elemento (xmlDoc)
- 检查每个子节点的节点类型。如果节点类型为 "
1
" ay elemento na tugma - Kung ito ay elemento na tugma, ipalabas ang pangalan ng tugma
Naglalakbay sa mga relasyon ng tugma
Ang mga sumusunod na kodigo ay gumagamit ng mga relasyon ng tugma sa navigation sa puno ng tugma:
Halimbawa
x = xmlDoc.getElementsByTagName("book")[0]; xlen = x.childNodes.length; y = x.firstChild; txt = ""; for (i = 0; i <xlen; i++) { // Lapitan lamang ang mga elemento na elemento (type 1) if (y.nodeType == 1) { txt += y.nodeName + "<br>"; } y = y.nextSibling; }
Panghahayag:
- Ipagpalagay na iyong dinagdagan ang "books.xml" na dinadala sa
xmlDoc
- Aking kumuha ng mga anak na elemento ng unang book
- 将 "y" 变量设置为第一个 book 元素的第一个子节点
- 对于每个子节点(从第一个子节点 "
y
" 开始): - 检查每个子节点的节点类型。如果节点类型为 "
1
",则它是元素节点 - 如果是元素节点,则输出该节点的名称
- 将 "
y
" 变量设置为下一个同级节点,并再次运行循环