Como Carregar um arquivo XML
Pietro Gaião | julho 9th, 2009 | XML | No Comments »
O XML DOM (Document Object Model XML), define uma forma padrão para acessar e manipular documentos XML.
Todos os elementos podem ser acessados através da árvore DOM. Seu conteúdo (texto e atributos) pode ser modificado ou excluído, e novos elementos podem ser criados. Os elementos, o seu texto, e seus atributos são todos conhecidos como nó.
Nos exemplos abaixo usamos a seguinte referência DOM para obter o texto do elemento
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
xmlDoc – o documento XML criado pelo analisador.
getElementsByTagName(“to”)[0] – o primeiro elemento < to>
childNodes[0] – o primeiro filho do elemento
nodeValue – o valor do nó (o texto propriamente dito)
O HTML DOM
O HTML DOM (HTML Document Object Model) define uma forma padrão para acessar e manipular documentos HTML.
Todos os elementos HTML podem ser acessados através do HTML DOM.
Nos exemplos abaixo usamos a seguinte referência DOM para alterar o texto do elemento HTML onde id = “to”:
document.getElementById("to").innerHTML=
document – o documento HTML
getElementById(“to”) – o elemento HTML onde id = “to”
innerHTML – o texto interior do elemento HTML
Carregar um arquivo XML
O código a seguir carrega um documento XML ( “note.xml”) para o analisador XML:
Exemplo:
Nota Importante
<html>
<head>
<script type="text/javascript">
function loadXMLDoc(dname)
{
var xmlDoc;
if (window.XMLHttpRequest)
{
xmlDoc=new window.XMLHttpRequest();
xmlDoc.open("GET",dname,false);
xmlDoc.send("");
return xmlDoc.responseXML;
}
// IE 5 and IE 6
else if (ActiveXObject("Microsoft.XMLDOM"))
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load(dname);
return xmlDoc;
}
alert("Erro ao abrir o documento");
return null;}
</script>
</head>
<body>
<div>Tutorial XML - Pietro Gaião</div>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
<script type="text/javascript">
xmlDoc=loadXMLDoc("note.xml");
document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>
</body>
</html>
Para extrair o texto “Jani” a partir do XML, a sintaxe é:
getElementsByTagName("from")[0].childNodes[0].nodeValue
No XML exemplo, só há uma tag
Carregar um XML
O seguinte código carrega e analisa uma seqüência XML:
Exemplo:
<html>
<head>
<script type="text/javascript">
function loadXMLString()
{
text="<note>";
text=text+"<to>Pietro</to>";
text=text+"<from>Tatiana</from>";
text=text+"<heading>Reminder</heading>";
text=text+"<body>Não se esqueçam de mim este fim de semana!</body>";
text=text+"</note>";
try //Internet Explorer
{
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(text);
}
catch(e)
{
try // Firefox, Mozilla, Opera, etc.
{
parser=new DOMParser();
xmlDoc=parser.parseFromString(text,"text/xml");
}
catch(e)
{
alert(e.message);
return;
}
}
document.getElementById("to").innerHTML=xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
}
</script>
</head>
<body onload="loadXMLString()">
<h1>Tutorial XML - Pietro Gaião</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</p>
</body>
</html>
Nota: O Internet Explorer usa o loadXML () método para analisar uma string XML, ao passo que outros navegadores DOMParser usar o objeto.
Prontinho. Tudo explicado.
Até a próxima.
Popularity: 17% [?]
