Analisador de XML
Todos os principais navegadores têm um analisador XML integrado para acessar e manipular XML.
Analisador de XML
O XML DOM (Document Object Model) define as propriedades e métodos para acessar e editar XML.
No entanto, antes que um documento XML possa ser acessado, ele deve ser carregado em um objeto XML DOM.
Todos os navegadores modernos têm um analisador XML integrado que pode converter texto em um objeto XML DOM.
Analisando uma string de texto
Este exemplo analisa uma string de texto em um objeto XML DOM e extrai as informações dele com JavaScript:
Exemplo
<html>
<body>
<p id="demo"></p>
<script>
var text, parser, xmlDoc;
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
document.getElementById("demo").innerHTML =
xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
Exemplo explicado
Uma string de texto é definida:
text = "<bookstore><book>" +
"<title>Everyday Italian</title>" +
"<author>Giada De Laurentiis</author>" +
"<year>2005</year>" +
"</book></bookstore>";
Um analisador XML DOM é criado:
parser = new DOMParser();
O analisador cria um novo objeto XML DOM usando a string de texto:
xmlDoc = parser.parseFromString(text,"text/xml");
Versões antigas do Internet Explorer
Versões antigas do Internet Explorer (IE5, IE6, IE7, IE8) não suportam o objeto DOMParser.
Para lidar com versões mais antigas do Internet Explorer, verifique se o navegador suporta o objeto DOMParser, ou então crie um ActiveXObject:
Exemplo
if (window.DOMParser) {
// code for modern browsers
parser = new DOMParser();
xmlDoc = parser.parseFromString(text,"text/xml");
}
else {
// code for old IE browsers
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async = false;
xmlDoc.loadXML(text);
}
O objeto XMLHttpRequest
O objeto XMLHttpRequest possui um analisador XML integrado.
A propriedade responseText retorna a resposta como uma string.
A propriedade responseXML retorna a resposta como um objeto XML DOM.
Se você quiser usar a resposta como um objeto XML DOM, poderá usar a propriedade responseXML.
Exemplo
Solicite o arquivo cd_catalog.xml e use a resposta como um objeto XML DOM:
xmlDoc = xmlhttp.responseXML;
txt = "";
x = xmlDoc.getElementsByTagName("ARTIST");
for (i = 0; i < x.length; i++) {
txt += x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("demo").innerHTML = txt;