tutoriais mais recente desenvolvimento web
 

XML DOM - Acessando Nodes


Com o DOM, você pode acessar todos os nós em um documento XML.


Tente você mesmo - Exemplos

Os exemplos abaixo usar o arquivo XML books.xml .

Acessar um nó usando seu número de índice em uma lista de nós
Use o getElementsByTagName() método para obter o terceiro <title> elemento em "books.xml"

Loop através de nós usando a propriedade length
Use a propriedade comprimento para percorrer todos <title> elementos em "books.xml"

Veja o tipo de nó de um elemento
Use a propriedade nodeType para obter tipo de nó do elemento raiz em "books.xml" .

Loop através de nós de elemento
Use a propriedade nodeType para nós de elemento único processo em "books.xml" .

Loop através de nós de elemento usando relações de nó
Use a propriedade nodeType ea propriedade nextSibling para processar nós elemento em "books.xml" .

×

Cabeçalho


acessando Nodes

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

1. Ao utilizar o getElementsByTagName() Método

2. Em loop (traversing) da árvore de nós.

3. Ao navegar pela árvore de nós, usando as relações de nó.


O getElementsByTagName() Método

getElementsByTagName () retorna todos os elementos com um nome de marca especificada.

Sintaxe

node.getElementsByTagName("tagname");

Exemplo

O exemplo a seguir retorna todas as <title> elementos sob o elemento x:

x.getElementsByTagName("title");

Note que o exemplo acima apenas retorna <title> elementos sob o nó x. Para retornar todas as <title> elementos no uso de documentos XML:

xmlDoc.getElementsByTagName("title");

onde xmlDoc é o próprio documento (document node) .


Lista Node DOM

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

x = xmlDoc.getElementsByTagName("title");

O <title> elementos em x pode ser acessado pelo número de índice. Para acessar o terceiro <title> você pode escrever ::

y = x[2];

Note: O índice começa em 0.

Você vai aprender mais sobre listas de nó em um capítulo posterior deste tutorial.


DOM Lista Nó Comprimento

A propriedade de comprimento define o comprimento de uma lista de nós (the number of nodes) .

Você pode fazer um loop através de uma lista de nós usando a propriedade length:

Exemplo

var x = xmlDoc.getElementsByTagName("title");

for (i = 0; i <x.length; i++) {
  // do something for each node
  }
Tente você mesmo "

Tipos de nó

O documentElement propriedade do documento XML é o nó raiz.

O nodeName propriedade de um nó é o nome do nó.

O nodeType propriedade de um nó é o tipo de nodo.

Você vai aprender mais sobre as propriedades do nó no próximo capítulo deste tutorial.

Tente você mesmo


atravessando Nodes

O código a seguir percorre os nós filho, que também são nós de elemento, do nó raiz:

Exemplo

txt = "";
x = xmlDoc.documentElement.childNodes;

for (i = 0; i <x.length; i++) {
  // Process only element nodes (type 1)
  if (x[i].nodeType == 1) {
    txt += x[i].nodeName + "<br>";
  }
}
Tente você mesmo "

Exemplo explicou:

  1. Suponha que você tenha carregado " books.xml " em xmlDoc
  2. Obter os nós filhos do elemento raiz (xmlDoc)
  3. Para cada nó filho, verifique o tipo de nó. Se o tipo de nó é "1" , é um nodo elemento
  4. Saída o nome do nó, se for um nó elemento

Relações Nó Navegando

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

Exemplo

x = xmlDoc.getElementsByTagName("book")[0];
xlen = x.childNodes.length;
y = x.firstChild;

txt = "";
for (i = 0; i <xlen; i++) {
  // Process only element nodes (type 1)
  if (y.nodeType == 1) {
    txt += y.nodeName + "<br>";
  }
  y = y.nextSibling;
}
Tente você mesmo "

Exemplo explicou:

  1. Suponha que você tenha carregado " books.xml " em xmlDoc
  2. Obter nós filho do primeiro elemento livro
  3. Defina o "y" variável para ser o primeiro nó filho do primeiro elemento livro
  4. Para cada nó filho (starting with the first child node "y") :
  5. Verifique o tipo de nó. Se o tipo de nó é "1" , é um nodo elemento
  6. Saída o nome do nó, se for um nó elemento
  7. Defina o "y" variável a ser o nó irmão seguinte, e executado através do laço novamente