定位 XML DOM نود
- صفحه قبلی پیمایش گرهها DOM
- صفحه بعدی دسترسی به گرهها DOM
میتوان گرهها را با استفاده از روابط گره مکانیابی کرد.
مکانیابی گره DOM
با استفاده از روابط گره، به گرههای درخت گرهها دسترسی پیدا میکند، معمولاً به این عنوان شده
در XML DOM، روابط گره به عنوان ویژگیهای گره تعریف شدهاند:
parentNode
childNodes
firstChild
lastChild
nextSibling
previousSibling
تصویر زیر books.xml یک بخش از درخت گرهها و توضیح روابط گرهها را نشان میدهد:

DOM - پدر گره
همه گرهها فقط یک پدر دارند. کد زیر به پدر گره <book> هدایت میشود:
مثال
تابع myFunction(xml) { var xmlDoc = xml.responseXML; var x = xmlDoc.getElementsByTagName("book")[0]; document.getElementById("demo").innerHTML = x.parentNode.nodeName; }
توضیح مثال:
- به books.xml به
xmlDoc
در - اولین عنصر <book> را دریافت کنید
- نام گره پدر گره خروجی "x" را نمایش دهید
جلوگیری از گرههای متن خالی
بعضی از مرورگرها ممکن است فضاهای خالی یا خطوط شکستگی را به عنوان گرههای متن در نظر بگیرند. این ممکن است مشکلی را در استفاده از این ویژگیها ایجاد کند:
- firstChild
- lastChild
- nextSibling
- previousSibling
برای جلوگیری از حرکت به گرههای متن خالی (فضاهای خالی و خطوط شکستگی بین گرههای عنصر)، ما از یک تابع برای بررسی نوع گره استفاده میکنیم:
تابع 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(); تابع myFunction(xml) { var xmlDoc = xml.responseXML; var x = get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.getElementById("demo").innerHTML = x.nodeName; } // بررسی اولین نقطه آیا نقطه عناصر است یا خیر تابع get_firstChild(n) { var y = n.firstChild; while (y.nodeType != 1) { y = y.nextSibling; } return y; } </script> </body> </html>
توضیح مثال:
- به books.xml به xmlDoc بارگذاری شود
- از تابع get_firstChild روی اولین نقطه <book> استفاده کنید تا اولین فرزند نقطه را دریافت کنید
- نام نقطه اولین فرزند را بیرون میدهد
مثالهای بیشتر
- lastChild()
- استفاده از روش lastChild() و تابع تعریف شده برای دریافت آخرین فرزند یک نقطه.
- nextSibling()
- برای دسترسی به گرهی همکلاسی بعدی از روش nextSibling() و توابع تعریف شده خود استفاده کنید.
- previousSibling()
- برای دسترسی به گرهی همکلاسی قبلی از روش previousSibling() و توابع تعریف شده خود استفاده کنید.
- صفحه قبلی پیمایش گرهها DOM
- صفحه بعدی دسترسی به گرهها DOM