XML DOM Düğümlerine Erişim

DOM ile, XML belgesindeki her düğümü erişebilirsiniz.

Düğümü erişmek

Düğümü erişmek için üç yolla erişebilirsiniz:

  • getElementsByTagName() yöntemini kullanarak
  • Düğüm ağacını dolaşarak (tarayarak)
  • Düğüm ilişkilerini kullanarak düğüm ağacında gezinmek

getElementsByTagName() yöntemi

getElementsByTagName() Belirtilen etiket adına sahip tüm elementleri döndürür.

Sözdizimi

node.getElementsByTagName("tagname");

Örnek

Aşağıdaki örnek, x elementindeki tüm <title> elementlerini döndürür:

x.getElementsByTagName("title");

Lütfen dikkat edin, yukarıdaki örnek sadece x düğümündeki <title> elementlerini döndürür. XML belgesindeki tüm <title> elementlerini döndürmek için aşağıdaki gibi kullanın:

xmlDoc.getElementsByTagName("title");

Burada,xmlDoc dosya kendisi (dosya düğümü).

DOM düğüm listesi

getElementsByTagName() Metodu, nod listesini döndürür. Nod listesi, nodların dizisidir.

x = xmlDoc.getElementsByTagName("title");

Yöntemi, nod listesini döndürür. Nod listesi, nodların dizisidir. Nodun üçüncü <title> elementine erişmek için şu şekilde yazabilirsiniz:

x = xmlDoc.getElementsByTagName("title");

y = x[2];Açıklama:

Kişisel olarak deneyin

İndeks 0'dan başlar.

length DOM nod listesi uzunluğu

Nod listesinin uzunluğunu (nod sayısını) tanımlamak için length Özelliği ile nod listesini döngü içinde gezinmek için kullanabilirsiniz:

Örnek

var x = xmlDoc.getElementsByTagName("title");
for (i = 0; i <x.length; i++) {
  // Her nodun işlemek için buraya kod yazabilirsiniz
  }

Kişisel olarak deneyin

Nod türü

XML belgesinin documentElement Özellik, kök noddur.

Nodun nodeName Özellik, nodun adıdır.

Nodun nodeType Özellik, nodun türüdür.

Nod özellikleri hakkında daha fazla içerik, bu dersin bir sonraki bölümünde öğreneceksiniz.

Kişisel olarak deneyin

Nod gezinme

Aşağıdaki kod, kök nodunun alt nodlarını (aynı zamanda element nodları) döngü içinde gezinir:

Örnek

txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i <x.length; i++) {
  // Yalnızca element nodlarını (tip 1) işlemek
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}

Kişisel olarak deneyin

Örnek açıklama:

  1. Örneğin, "books.xml" Yükle xmlDoc
  2. Kök element (xmlDoc) alt nodlarını alın
  3. Her bir alt düğümün düğüm türünü kontrol eder. Eğer düğüm türü "1" ise, element nodudur
  4. Eğer element noduysa, nod adını çıktıya yaz

Nod ilişkileri dolaşma

Aşağıdaki kod, nod ilişkilerini kullanarak nod ağacında dolaşmayı sağlar:

Örnek

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;
txt = "";
for (i = 0; i <xlen; i++) {
  // Yalnızca element nodlarını (tip 1) işlemek
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}

Kişisel olarak deneyin

Örnek açıklama:

  1. Örneğin, "books.xml" Yükle xmlDoc
  2. İlk book element'in alt nodlarını al
  3. " y değişkeni ilk book elemanının ilk alt düğümü olarak ayarlar
  4. Her bir alt düğüm için (ilk alt düğüm "y" ile başlıyorsa (
  5. Her bir alt düğümün düğüm türünü kontrol eder. Eğer düğüm türü "1" ise, o element düğümüdür
  6. Eğer düğüm bir element düğümse, o düğümün adını çıktı verir
  7. " Değişkeni ayarlamak için "y" Değişkeni bir sonraki eşdeğer düğüm olarak ayarlanır ve döngü tekrar çalıştırılır