एक्सएमएल डॉम नोड लोकेशन

नोड को नोडों के बीच के संबंधों के द्वारा स्थानित किया जा सकता है。

उदाहरण

नीचे दिए गए उदाहरण XML फ़ाइल का उपयोग करता है books.xml

फ़ंक्शन loadXMLDoc()विदेशी जावास्क्रिप्ट में स्थित है, जिसका उपयोग XML फ़ाइलों को लोड करने के लिए किया जाता है。

एक नोड के पैरेंट नोड को प्राप्त करें
इस उदाहरण में parentNode अटीबूट का उपयोग किया जाता है एक नोड के पिता नोड को प्राप्त करने के लिए।
नोड के पहले चालक नोड को प्राप्त करें
इस उदाहरण में firstChild() फ़ंक्शन और एक स्वयंगत फ़ंक्शन का उपयोग किया जाता है एक नोड के पहले चालक नोड को प्राप्त करने के लिए。

DOM नोड नेविगेशन

नोडों के संबंधों के माध्यम से नोड ट्री में किए जाने वाले नोडों को पहुँचने, ये आमतौर पर 'नोड नेविगेशन' ("navigating nodes") के रूप में जाना जाता है。

XML DOM में, नोड के संबंधों को नोड के अटीबूट के रूप में परिभाषित किया जाता है:

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

नीचे दिए गए चित्र इसे दिखाता है books.xml एक नोड ट्री के एक हिस्सा है, और नोडों के बीच के संबंधों को स्पष्ट करता है:

डीओएम नोड ट्री

DOM - पिता नोड

सभी नोड केवल एक पिता नोड हैं। नीचे दिए गए कोड <book> के पिता नोड को स्थापित करता है:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0];
document.write(x.parentNode.nodeName);

उदाहरण का व्याख्यान:

  • इस द्वारा उपयोग करके loadXMLDoc() इस "books.xml" xmlDoc में लोड करें
  • पहले <book> एलीमेंट को प्राप्त करें
  • x के पिता नोड का नोड नाम आउटपुट करें

TIY

खाली टेक्स्ट नोड से बचना

Firefox, और कुछ अन्य ब्राउज़र, खाली शून्य अंतराल या लिनेटेक्स को टेक्स्ट नोड के रूप में परिभाषित करते हैं, जबकि IE ऐसा नहीं करता。

यह निम्नलिखित अटीबूटों का उपयोग करते समय एक समस्या पैदा करता है: firstChild, lastChild, nextSibling, previousSibling。

खाली टेक्स्ट नोड (एलीमेंट नोडों के बीच के खाली अंतराल और लिनेटेक्स) को पास करने से बचने के लिए, हम एक फ़ंक्शन का उपयोग करते हैं जो नोड के प्रकार की जांच करता है:

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

उपरोक्त फ़ंक्शन के साथ, हम get_nextSibling(node) का उपयोग कर सकते हैं बजाय node.nextSibling अटीबूट के。

कोड व्याख्या:

एलीमेंट नोड का प्रकार 1 है। यदि समान स्तर के नोड एक एलीमेंट नोड नहीं है, तो अगले नोड की ओर जाएं, जब तक कि एक एलीमेंट नोड नहीं मिले। इस तरह, IE और Firefox में एक समान परिणाम प्राप्त किया जा सकता है。

पहले एलीमेंट प्राप्त करें

नीचे दिए गए कोड पहले <book> के पहले एलीमेंट नोड को दिखाता है:

<html>
<head>
<script type="text/javascript" src="loadxmldoc.js">
</script>
<script type="text/javascript">
//चेक करें कि पहला नोड एक एलीमेंट नोड है
function get_firstChild(n)
{
y=n.firstChild;
while (y.nodeType!=1)
  {
  y=y.nextSibling;
  }
return y;
}
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=loadXMLDoc("books.xml");
x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]);
document.write(x.nodeName);
</script>
</body>
</html>

आउटपुट:

title

उदाहरण का व्याख्यान:

  • इस द्वारा उपयोग करके loadXMLDoc() इस "books.xml" xmlDoc में लोड करें
  • पहले <book> के ऊपर get_firstChild फ़ंक्शन का उपयोग करके एलिमेंट नोड के भीतर पहले चालक को प्राप्त करें
  • पहले चालक (एलिमेंट नोड के साथ) का नोड नाम आउटपुट करें

TIY

उदाहरण

इस उदाहरण में समान कार्यों का उपयोग किया जाता है:

  • firstChild: TIY
  • lastChild: TIY
  • nextSibling: TIY
  • previousSibling: TIY