XML DOM locate nodes

An rarrarci nauyi a cikin nauyi da nauyi tsa nauyi a rarrarce tsa nauyi.

Tashi DOM nauyi

A gana nauyi tsa nauyi a cikin nauyi tsa nauyi na nauyi a rarrarce tsa nauyi, ana kira 'tashi nauyi' (taiwa da 'navigating nodes', navigating nodes).

A cikin XML DOM, wa'ade tsa nauyi na nauyi ne na iya amma tsa na na nauyi:

  • parentNode
  • childNodes
  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

Sunan nan na fiyanci a gana: books.xml wanda a fagen kara tsa nauyi na kuma tsa na na kaiyaki kuma yana kira wasu wa'ade tsa nauyi:

DOM tsaɗaɗa kara

DOM - wanda a fagen kara tsa nauyi

Allan nauyi ne na iya amma na wanda a fagen kara tsa nauyi na <book>:

Tunawa

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

Fari hanyan shi

Tunawa:

  1. Gudan books.xml a tsamman zuwa xmlDoc
  2. A gani na farko na <book> nauyi
  3. Gani "x" na wanda a fagen kara tsa nauyi:

A rarrarciya tsa njiyayen na kosai

Kuma tsa wasu yauye tsa tsa na a da girmamman ko tsa njiyayen. Ana yana da rashin wajibciwa tsa wasu alamuran da a fi a kan:

  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

Iya da a rarrarciya tsa dabbaren tsa njiyayen, a niya da amma tsa koyen wanda a fagen kara tsa rarrarce tsa nauyi:

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

有了上面的函数,我们就可以使用 get_nextSibling(node) 来代替 node.nextSibling 属性。

代码解释:

元素节点的类型为 1。如果同级节点不是元素节点,则移动到下一个节点,直到找到元素节点。

Fari hanyan farko na yankin

Kwakwar kwaya koda, koda na farko na <book> yankin farko na yankin:

Tunawa

<!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;
}
// Kiyaye farko na farko na yankin bana yankin
function get_firstChild(n) {
    var y = n.firstChild;
    while (y.nodeType != 1) {
        y = y.nextSibling;
    }
    return y;
}
</script>
</body>
</html>

Fari hanyan shi

Tunawa:

  1. Gudan books.xml Yin fari hanyan xmlDoc
  2. A yin fari hanyan get_firstChild fari hanyan farko na yankin <book> yankin
  3. Bori yin fari hanyan na farko na yankin yankin

Kwarewar kwaya

lastChild()
A yin fari hanyan lastChild() da kisanen fari hanyan a yankin farko na yankin sonki.
nextSibling()
使用 nextSibling() 方法和自定义函数来获取节点的下一个同胞节点。
previousSibling()
使用 previousSibling() 方法和自定义函数来获取节点的上一个同胞节点。