Diferenças de Navegador XML DOM
- Página anterior Navegação de nós DOM
- Próxima página Localização de nós DOM
Os navegadores lidam de maneiras diferentes com nós de texto em branco no XML DOM.
Exemplo
O exemplo a seguir usa arquivo XML books.xml.
Função loadXMLDoc()Localizado no JavaScript externo, usado para carregar arquivos XML.
- Mostrar comprimento da lista de nós
- Este exemplo mostra o comprimento da lista de nós. No IE e outros navegadores, os resultados são diferentes.
- Ignorar nós de texto em branco entre nós
- Este exemplo verifica o nodeType do nó e apenas lida com nós de elemento.
Diferenças de navegadores no processamento DOM
Todos os navegadores modernos suportam o padrão W3C DOM.
No entanto, há diferenças entre navegadores. As diferenças importantes são duas:
- Maneiras de carregar XML
- Maneiras de lidar com espaços em branco e quebras de linha
Em “Análise XML DOM” Esta seção já explicou diferentes maneiras de carregar XML.
Nesta seção, explicaremos diferentes maneiras de lidar com espaços em branco e quebras de linha.
DOM - Espaços em branco e quebras de linha
O XML geralmente contém quebras de linha ou caracteres de espaço entre nós. Isso é comum ao usar editores simples (como o Bloco de Notas).
Os exemplos a seguir (editados no Bloco de Notas) contêm CR/LF entre as linhas e dois espaços antes de cada sub-nó:
<book> <title>Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book>
Firefox, outros navegadores e alguns tratam espaços em branco ou quebras de linha em branco como nós de texto, enquanto o Internet Explorer não faz isso.
O trecho de código a seguir mostra quantos nós filhos possui o nó raiz (do books.xml):
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; document.write("Número de nós filhos: " + x.length);
Exemplo de explicação:
- Ao usar loadXMLDoc() Coloque "books.xml"Carregar em xmlDoc"
- Obtenha os filhos do nó raiz
- Número de filhos de saída
Os resultados dependem do navegador utilizado. Firefox sai com 9, enquanto o IE sai com 4.
Ignorar nós de texto em branco entre nós
Para ignorar os nós de texto em branco entre os nós de elemento, é necessário verificar o tipo de nó. O tipo de nó do elemento é 1:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {// apenas processar nós de elemento document.write(x[i].nodeName); document.write("<br />"); } }
Exemplo de explicação:
- Ao usar loadXMLDoc() Coloque "books.xml"Carregar em xmlDoc"
- Obtenha os filhos do nó raiz
- Verifique o tipo de nó de cada subnó.
- Página anterior Navegação de nós DOM
- Próxima página Localização de nós DOM