XML DOM NodeList

A lista de nós é retornada pelo método getElementsByTagName() e pela propriedade childNodes.

Exemplo

O exemplo a seguir usa o arquivo XML books.xml.

Função loadXMLDoc()Localizado no JavaScript externo, usado para carregar o arquivo XML.

Obter o texto do primeiro elemento <title>
Este exemplo usa o método getElementsByTagName() para obter o texto do primeiro elemento <title> do arquivo "books.xml".
Percorrer os nós usando a propriedade length
Este exemplo usa a lista de nós e a propriedade length para percorrer todos os elementos <title> no arquivo "books.xml".
Obter os atributos do elemento
Este exemplo usa a lista de atributos para obter os atributos do primeiro elemento <title> do arquivo "books.xml".

DOM NodeList

Quando utiliza propriedades ou métodos como childNodes ou getElementsByTagName(), retorna um objeto NodeList.

O objeto NodeList representa uma lista de nós, na mesma ordem que no XML.

Utilize o índice começando em 0 para acessar os nós na lista de nós.

A imagem a seguir representa "books.xml"É uma lista de nós de elementos <title>:"

Lista de nós DOM

O trecho de código a seguir usa loadXMLDoc() Carregar "books.xml" no xmlDoc e retornar "books.xml"É uma lista de nós de um elemento title:"

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

Após a execução da sentença acima, x se torna um objeto NodeList.

O código a seguir retorna o texto do primeiro elemento <title> da lista de nós x:

txt=x[0].childNodes[0].nodeValue;

Após a execução da sentença acima, txt = "Everyday Italian".

TIY

comprimento da lista de nós

O objeto NodeList manterá suas próprias atualizações. Se remover ou adicionar elementos, a lista atualizará automaticamente.

A propriedade length da lista de nós é o número de nós na lista.

O trecho de código a seguir usa loadXMLDoc() Definir "books.xml"Carregar xmlDoc e retornar o número de elementos <title> em "books.xml":

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

Após a execução da sentença acima, x = 4.

O comprimento da lista de nós pode ser usado para percorrer todos os elementos da lista.

O código a seguir usa a propriedade length para percorrer a lista de elementos <title>:

xmlDoc=loadXMLDoc("books.xml");
//a variável x conterá uma lista de nós
x=xmlDoc.getElementsByTagName('title');
for (i=0;i<x.length;i++)
{
document.write(x[i].childNodes[0].nodeValue);
document.write("<br />");
}

Saída:

Harry Potter
Everyday Italian
XQuery Kick Start
Learning XML

Exemplo de explicação:

  • Ao usar loadXMLDoc() Definir "books.xml"Carregar xmlDoc
  • Definir a variável x para conter a lista de nós de todos os elementos title.
  • Emitir valores de nós de texto de todos os elementos <title>.

TIY

DOM Attribute List (Named Node Map)

A propriedade attributes do nó de elemento retorna a lista de nós de atributos.

Isto é chamado de Named Node Map, além de algumas diferenças em métodos e atributos, é semelhante à lista de nós.

A lista de atributos manterá suas próprias atualizações. Se remover ou adicionar atributos, a lista atualizará automaticamente.

O trecho de código a seguir usa loadXMLDoc() Carregar "books.xml" em xmlDoc e emitir de "books.xmlO primeiro elemento <book> dentro de "

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName('book')[0].attributes;

Após a execução do código acima, x.length é igual ao número de atributos, que pode ser usado para retornar o nó de atributo com x.getNamedItem().

O trecho de código a seguir exibe o valor do atributo "category" de um "book" e o número de seus atributos:

xmlDoc=loadXMLDoc("books.xml");
x=xmlDoc.getElementsByTagName("book")[0].attributes;
document.write(x.getNamedItem("category").nodeValue);
document.write("<br />" + x.length);

Saída:

filhos
1

Exemplo de explicação:

  • Ao usar loadXMLDoc() Definir "books.xml"Carregar em xmlDoc"
  • Definir a variável x como uma lista de todos os atributos do primeiro elemento <book>
  • Emitir o valor do atributo "category"
  • Emitir a lista de atributos

TIY