RSS

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
(o texto nó)
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:

<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>
Nota Importante
Para extrair o texto “Jani” a partir do XML, a sintaxe é:
getElementsByTagName("from")[0].childNodes[0].nodeValue
No XML exemplo, só há uma tag , mas você ainda terá de indicar o índice da array [0], uma vez que o método analisador XML getElementsByTagName () retorna um array de todos nós .

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% [?]

Leave a Reply