Localização de nós XML DOM
- Página anterior Navegador DOM
- Próxima página Obtenção de nós DOM
pode localizar o nó usando a relação entre os nós.
Exemplo
O exemplo a seguir usa arquivo XML books.xml.
função loadXMLDoc()localizado no JavaScript externo, usado para carregar arquivos XML.
- Obter o nó pai do nó
- Este exemplo usa a propriedade parentNode para obter o nó pai do nó.
- Obter o primeiro filho do nó
- Este exemplo usa o método firstChild() e uma função personalizada para obter o primeiro filho de um nó.
Navegação em nós DOM
Acesso aos nós na árvore de nós através das relações entre nós, geralmente chamado de navegação de nós ("navigating nodes").
No XML DOM, as relações entre nós são definidas como atributos do nó:
- parentNode
- childNodes
- firstChild
- lastChild
- nextSibling
- previousSibling
A seguir, uma imagem mostra books.xml Uma parte da árvore de nós e explica as relações entre nós:

DOM - nó pai
Todos os nós têm apenas um nó pai. O código a seguir localiza o nó pai de <book>:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("book")[0]; document.write(x.parentNode.nodeName);
Explicação do exemplo:
- Usando loadXMLDoc() Coloque "books.xml"carregar para xmlDoc"
- Obter o primeiro elemento <book>
- Output do nome do nó pai do "x"
Evitar nós de texto vazios
O Firefox e outros navegadores consideram espaços em branco vazios ou quebras de linha como nós de texto, enquanto o IE não faz isso.
Isso pode causar um problema ao usar os seguintes atributos: firstChild, lastChild, nextSibling, previousSibling.
Para evitar localizar nós de texto vazios (espaços e sinais de nova linha entre nós de elemento), usamos uma função para verificar o tipo do nó:
function get_nextSibling(n) { y=n.nextSibling; while (y.nodeType!=1) { y=y.nextSibling; } return y; }
Com a função acima, podemos usar get_nextSibling(node) para substituir a propriedade node.nextSibling.
Explicação do código:
O tipo do nó de elemento é 1. Se o nó同级 não for nó de elemento, mova para o próximo nó até encontrar um nó de elemento. Com esse método, no IE e no Firefox, podem-se obter resultados idênticos.
Obter o primeiro elemento
O código a seguir mostra o primeiro elemento do primeiro <book>:
<html> <head> <script type="text/javascript" src="loadxmldoc.js"> </script> <script type="text/javascript"> //verificar se o primeiro nó é um nó de elemento função get_firstChild(n) { y=n.firstChild; while (y.nodeType!=1) { y=y.nextSibling; } return y; } </script> </head> <body> <script type="text/javascript"> xmlDoc=loadXMLDoc("books.xml"); x=get_firstChild(xmlDoc.getElementsByTagName("book")[0]); document.write(x.nodeName); </script> </body> </html>
Saída:
title
Explicação do exemplo:
- Usando loadXMLDoc() Coloque "books.xml"Carregar em xmlDoc"
- Use a função get_firstChild no primeiro <book> para obter o primeiro filho do nó do elemento
- Saída do nome do primeiro filho (nó do elemento)
Exemplo
O exemplo a seguir usa funções semelhantes:
- Página anterior Navegador DOM
- Próxima página Obtenção de nós DOM