XML DOM Düğüm Lokasyonu

düğümün yerini düğüm arasındaki ilişkilerle belirleyebilirsiniz.

Örnek

Aşağıdaki örnek XML dosyasını kullanır books.xml.

fonksiyon loadXMLDoc()dışarıdaki JavaScript'te, XML dosyasını yüklemek için kullanılır.

Düğümün ebeveyn düğümünü elde etme
Bu örnek, parentNode özelliği kullanarak düğümün ebeveyn düğümünü almak için kullanılır.
Düğümün ilk alt düğümünü alın
Bu örnek, firstChild() yöntemi ve bir özelleştirilmiş fonksiyon kullanarak bir düğümün ilk alt düğümünü almak için kullanılır.

DOM düğümünü belirleme

Düğüm arasındaki ilişkiler aracılığıyla düğüm ağacındaki düğümlere erişmek, genellikle düğüm navigasyonu ("navigating nodes") olarak adlandırılır.

XML DOM'da, düğüm ilişkileri düğüm özellikleri olarak tanımlanır:

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

Aşağıdaki görsel, books.xml Bir node ağacının bir parçasıdır ve düğüm arasındaki ilişkileri açıklar:

DOM node ağacı

DOM - Ebeveyn düğümü

Tüm düğüm doar bir ebeveyn düğümüne sahiptir. Aşağıdaki kod, <book>ın ebeveyn düğümünü belirler:

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

Örnek açıklaması:

  • Kullanarak loadXMLDoc() "books.xml" xmlDoce yüklenir
  • İlk <book> elementini alın
  • "x"in ebeveyn düğümünün düğüm adını çıktıya alın

TIY

Boş metin düğümünü önlemek

Firefox ve diğer bazı tarayıcılar, boş boşluk veya satır sonlandırma işaretlerini metin düğümeleri olarak kabul ederken, IE bunu yapmaz.

Bu, aşağıdaki özelliklerin kullanıldığında bir soruna neden olur: firstChild, lastChild, nextSibling, previousSibling.

Boş metin düğümüne (element düğümeleri arasındaki boşluk ve satır sonlandırma işaretleri) ulaşmak için bir fonksiyon kullanarak düğüm türünü kontrol ederiz:

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

Yukarıdaki fonksiyonla, get_nextSibling(node) kullanarak node.nextSibling özelliğini değiştirebiliriz.

Kod açıklaması:

Element düğümünün türü 1'dir. Eş düğüm element düğümü değilse, bir sonraki düğüme geçin ve element düğümüne kadar ilerleyin. Bu yöntemle, IE ve Firefox'ta aynı sonuç elde edilebilir.

İlk elementi alın

Aşağıdaki kod, ilk <book>ın ilk element düğümünü gösterir:

<html>
<head>
<script type="text/javascript" src="loadxmldoc.js">
</script>
<script type="text/javascript">
//kontrol et ki ilk düğüm bir element düğümü mu
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>

Çıktı:

title

Örnek açıklaması:

  • Kullanarak loadXMLDoc() "books.xml" xmlDoc içinde yüklenir
  • get_firstChild fonksiyonunu kullanarak ilk <book> üzerinde, element node içindeki ilk alt node'u almak için
  • İlk alt node'un (element node) node adını çıktılandırır

TIY

Örnek

Aşağıdaki örnek benzer fonksiyonları kullanır:

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