Acesso de Nó XML DOM

Através do DOM, você pode acessar cada nó do documento XML.

Exemplo

O exemplo a seguir usa arquivo XML books.xml.

função loadXMLDoc()localizado no JavaScript externo, usado para carregar arquivos XML.

Acessar nós usando o índice da lista de nós
Este exemplo usa o método getElementsByTagname() para obter o terceiro elemento <title> no "books.xml".
Percorrer nós usando a propriedade length
Este exemplo usa a propriedade length para percorrer todos os elementos <title> no "books.xml".
Ver o tipo de nó do elemento
Este exemplo usa a propriedade nodeType para obter o tipo de nó do elemento raiz no "books.xml".
Ciclo de nós de elementos
Este exemplo usa a propriedade nodeType para lidar com nós de elementos no "books.xml".
Ciclo de nós de elementos usando relações de nós
Este exemplo usa a propriedade nodeType e a propriedade nextSibling para lidar com nós de elementos no "books.xml".

Acesso aos nós

Você pode acessar os nós de três maneiras:

  1. através do uso do método getElementsByTagName()
  2. através de laço (percurso) do árvore de nós
  3. navegação no árvore de nós utilizando as relações dos nós

Método getElementsByTagName()

getElementsByTagName() retorna todos os elementos com o nome de tag especificado.

gramática

node.getElementsByTagName("tagname");

Exemplo

O exemplo a seguir retorna todos os elementos <title> abaixo do nó x:

x.getElementsByTagName("title");

Observe que o exemplo acima retorna apenas os elementos <title> abaixo do nó x. Para retornar todos os elementos <title> no documento XML, use:

xmlDoc.getElementsByTagName("title");

Aqui, xmlDoc é o documento em si (nó de documento).

Lista de Nó DOM

O método getElementsByTagName() retorna uma lista de nós (lista de nós). A lista de nós é um array de nós.

O código a seguir usa loadXMLDoc() Defina "books.xml"Carregar xmlDoc em, e armazenar uma lista de nós <title> na variável x:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");

Você pode acessar o elemento <title> no x usando o índice. Para acessar o terceiro <title>, você pode escrever:

y=x[2];

TIY

Nota:Os índices começam em 0.

Você aprenderá mais sobre a Lista de Nó em seções posteriores deste tutorial.

Comprimento da Lista de Nó DOM

A propriedade length define o comprimento da lista de nós (ou seja, o número de nós).

Você pode percorrer uma lista de nós usando a propriedade length:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("title");
for (i=0;i<x.length;i++)
  { 
  document.write(x[i].childNodes[0].nodeValue);
  document.write("<br />");
  }

Exemplo de explicação:

  1. Usar loadXMLDoc() Defina "books.xml"Carregar xmlDoc
  2. Obtenha todos os elementos <title>
  3. Emita o valor do nó de texto de cada elemento <title>

TIY

Tipo de Nó

Documento XML de documentElement propriedade é o nó raiz.

propriedade do nó nodeName propriedade é o nome do nó.

propriedade do nó nodeType As propriedades são o tipo do nó.

Você aprenderá mais sobre as propriedades dos nós na próxima seção deste tutorial.

TIY

Percorra o nó

O código a seguir loopa pelos filhos do nó raiz, que também são nós de elementos:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.documentElement.childNodes;
for (i=0;i<x.length;i++)
{ 
  if (x[i].nodeType==1)
  {//Processar apenas nós de elemento (tipo 1) 
  document.write(x[i].nodeName);
  document.write("<br />");
  } 
}

Exemplo de explicação:

  1. Ao usar loadXMLDoc() Defina "books.xml"Carregar em xmlDoc"
  2. Obtenha os filhos do nó raiz
  3. Verifique o tipo de nó de cada subnó.
  4. Se o nó for um nó de elemento, mostre o nome do nó

TIY

Navegação usando relações de nó

O código a seguir navega pelo nó usando as relações de nó na árvore de nós:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].childNodes;
y=xmlDoc.getElementsByTagName("book")[0].firstChild;
for (i=0;i<x.length;i++)
{
if (y.nodeType==1)
  {//Processar apenas nós de elemento (tipo 1)
  document.write(y.nodeName + "<br />");
  }
y=y.nextSibling;
}
  1. Ao usar loadXMLDoc() Defina "books.xml"Carregar em xmlDoc"
  2. Obtenha o primeiro filho do primeiro elemento book
  3. Defina a variável "y" como o primeiro filho do primeiro elemento book
  4. Verifique o tipo de nó de cada subnó, se o tipo de nó for "1", é um nó de elemento
  5. Se o nó for um nó de elemento, mostre o nome do nó
  6. Defina a variável "y" como o próximo nó同级 e execute o loop novamente

TIY