Lista de nós XML DOM
Uma lista de nós é retornada pelo método getElementsByTagName() e pela propriedade childNodes.
Experimente você mesmo - Exemplos
Os exemplos abaixo usam o arquivo XML books.xml .
Este exemplo usa o método getElementsByTagName() para obter o texto do primeiro elemento <title> em "books.xml".
Este exemplo usa a lista de nós e a propriedade length para percorrer todos os elementos <title> em "books.xml"
Este exemplo usa uma lista de atributos para obter o atributo do primeiro elemento <book> em "books.xml".
Lista de nós DOM
Ao usar propriedades ou métodos como childNodes ou getElementsByTagName(), um objeto de lista de nós é retornado.
Um objeto de lista de nós representa uma lista de nós, na mesma ordem que no XML.
Os nós na lista de nós são acessados com números de índice começando em 0.
A imagem a seguir representa uma lista de nós dos elementos <title> em " books.xml ":
Suponha que "books.xml" seja carregado na variável xmlDoc.
Este fragmento de código retorna uma lista de nós de elementos de título em "books.xml":
x = xmlDoc.getElementsByTagName("title");
Após a execução da instrução acima, x é um objeto de lista de nós.
O fragmento de código a seguir retorna o texto do primeiro elemento <title> na lista de nós (x):
Exemplo
var txt = x[0].childNodes[0].nodeValue;
Após a execução da instrução acima, txt = "Italiano diário".
Comprimento da lista de nós
Um objeto de lista de nós mantém-se atualizado. Se um elemento for excluído ou adicionado, a lista será atualizada automaticamente.
A propriedade length de uma lista de nós é o número de nós na lista.
Este fragmento de código retorna o número de elementos <title> em "books.xml":
x = xmlDoc.getElementsByTagName('title').length;
Após a execução da instrução acima, o valor de x será 4.
O comprimento da lista de nós pode ser usado para percorrer todos os elementos da lista.
Este fragmento de código usa a propriedade length para percorrer a lista de elementos <title>:
Exemplo
x = xmlDoc.getElementsByTagName('title');
xLen = x.length;
for (i = 0; i <xLen; i++) {
txt += x[i].childNodes[0].nodeValue) + " ";
}
Saída:
Everyday Italian
Harry Potter
XQuery Kick Start
Learning XML
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Defina a variável x para manter uma lista de nós de todos os elementos de título
- Colete os valores do nó de texto dos elementos <title>
Lista de atributos DOM (mapa de nós nomeados)
A propriedade attribute de um nó de elemento retorna uma lista de nós de atributo.
Isso é chamado de mapa de nós nomeado e é semelhante a uma lista de nós, exceto por algumas diferenças nos métodos e propriedades.
Uma lista de atributos se mantém atualizada. Se um atributo for excluído ou adicionado, a lista será atualizada automaticamente.
Este fragmento de código retorna uma lista de nós de atributo do primeiro elemento <book> em "books.xml":
x = xmlDoc.getElementsByTagName('book')[0].attributes;
Após a execução do código acima, x.length = é o número de atributos e x.getNamedItem() pode ser usado para retornar um nó de atributo.
Este fragmento de código obtém o valor do atributo "category" e o número de atributos de um livro:
Exemplo
x = xmlDoc.getElementsByTagName("book")[0].attributes;
txt = x.getNamedItem("category").nodeValue + " " + x.length;
Saída:
cooking
1
Exemplo explicado:
- Suponha que " books.xml " seja carregado em xmlDoc
- Defina a variável x para conter uma lista de todos os atributos do primeiro elemento <book>
- Obtenha o valor do atributo "category" e o comprimento da lista de atributos