XML DOM నోడ్ నిర్ణయం

可通过使用节点间的关系对节点进行定位。

定位 DOM 节点

通过节点之间的关系来访问节点树中的节点,通常被称为“定位节点”(或导航节点,navigating nodes)。

ఎక్సిఎమ్ఎల్ డామ్లో నోడ్ సంబంధాలు నోడ్ యాత్రాంశాల ద్వారా నిర్వచించబడినవి:

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

దిగువ చిత్రం చూపిస్తుంది: books.xml నోడ్ ముడిపరిగణణలలో ఒక భాగంగా మరియు నోడ్ సంబంధాలను వివరించబడింది:

DOM నోడ్ ట్రీ

DOM - పైభాగం

అన్ని నోడ్లు ఒక మాత్రపు పైభాగాన్ని కలిగి ఉంటాయి. దిగువ కోడ్ క్రింది <book> పైభాగానికి పరిగణించబడుతుంది:

ఉదాహరణ

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

మీరే ప్రయత్నించండి

ఉదాహరణ వివరణలు:

  1. సమానంగా ఉండండి books.xml లోకి లోడ్ చేయండి xmlDoc లో
  2. మొదటి <book> ఎలిమెంట్ ను పొందండి
  3. x పైభాగం నోడ్ నోడ్ పేరు ఉచ్చారణ చేయండి

ఖాళీ టెక్స్ట్ నోడ్ నివారించండి

కొన్ని బ్రావ్జర్లు ఖాళీ లేదా కాంతును టెక్స్ట్ నోడ్ విభాగాలుగా పరిగణించవచ్చు. ఇది క్రింది అనునాసికాలను వినియోగించటంలో సమస్యలకు కారణం కావచ్చు:

  • firstChild
  • lastChild
  • nextSibling
  • previousSibling

ముందుకు పరిగణించబడని టెక్స్ట్ నోడ్ విభాగాలను (అంతర్గత అక్షరాలు మరియు నీటికలను) అవినీతికి నివారించడానికి మేము ఫంక్షన్ ఒకదానిని వాడుతున్నాము:

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

పైన ఫంక్షన్స్ తో, మేము get_nextSibling(node) ను ఉపయోగించవచ్చు node.nextSibling అంశం బదులు.

కోడ్ వివరణలు:

అంశం నోడ్ రకం 1. సమాన అంశం అంశం కాదు ఉండాలి ఉంటే, ముంది అంశం వరకు జరిపించండి, వరకు అంశం పొందండి వరకు జరిపించండి.

మొదటి కింది అంశం పొందండి

క్రింది కోడ్ ద్వారా మొదటి <book> యొక్క మొదటి అంశం నోడ్ పొందండి:

ఉదాహరణ

<!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;
}
// మొదటి నోడ్ అంశం కాదు ఉండాలి పరిశీలించండి
function get_firstChild(n) {
    var y = n.firstChild;
    while (y.nodeType != 1) {
        y = y.nextSibling;
    }
    return y;
}
</script>
</body>
</html>

మీరే ప్రయత్నించండి

ఉదాహరణ వివరణలు:

  1. సమానంగా ఉండండి books.xml అది xmlDoc లోకి లోడ్ చేయండి
  2. మొదటి <book> అంశం నోడ్ పైన get_firstChild ఫంక్షన్స్ వాడండి మొదటి కింది అంశం నోడ్ పొందండి
  3. మొదటి కింది అంశం యొక్క నోడ్ పేరును అవుట్పుట్ చేయండి

మరిన్ని ఉదాహరణలు

lastChild()
ఉపయోగించండి lastChild() మరియు స్వంత ఫంక్షన్స్ ద్వారా నోడ్ యొక్క చివరి సంబంధిత కింది పద్ధతిని పొందండి。
nextSibling()
nextSibling() మరియు స్వంత ఫంక్షన్స్ ఉపయోగించి నోడ్ నెక్స్ట్ స్యాబ్లింగ్ పొందడానికి ఉపయోగించండి.
previousSibling()
previousSibling() మరియు స్వంత ఫంక్షన్స్ ఉపయోగించి నోడ్ ప్రివియస్ స్యాబ్లింగ్ పొందడానికి ఉపయోగించండి.