Home Portfolios Blog Contacto
Buscar artículo:


Ajax
ASP
Asp.net
Blogosfera
Cosas Útiles
Css
Delphi
Flash
Foros
Gmail
Google Maps
Internet
Javascript
Office
Otros
php
Programando
Ruby on Rails
Swish-Max
Windows

- Ajax

LEER DATOS DE UN XML MEDIANTE AJAX
Si tienemos un documento xml como este:

Código:


<?xml version="1.0" ?>
<emprerators>
<emperor>
<name>August</name>
<rule>152</rule>
<death>Asesinato</death>
</emperor>
<emperor>
<name>Pepe</name>
<rule>152</rule>
<death>Natural</death>
</emperor>
</emprerators>

 


Que se llama emperors.xml

Podemos leer de él mediante ajax y rellenar un select o un div, en este ejemplo se producen los dos casos

Código:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<title>Untitled</title>
<script language="JavaScript">
function importXML()
{
if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument("", "", null);
xmlDoc.onload = createTable;
}
else if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function () {
if (xmlDoc.readyState == 4) createTable()
};
}
else
{
alert('Your browser can\'t handle this script');
return;
}
xmlDoc.load("emperors.xml");
}

function createTable()
{
var x = xmlDoc.getElementsByTagName('emperor');
var newEl = document.createElement('TABLE');
newEl.setAttribute('cellPadding',5);
var tmp = document.createElement('TBODY');
newEl.appendChild(tmp);
var row = document.createElement('TR');
for (j=0;j<x[0].childNodes.length;j++)
{
if (x[0].childNodes[j].nodeType != 1) continue;
var container = document.createElement('TH');
var theData = document.createTextNode(x[0].childNodes[j].nodeName);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
for (i=0;i<x.length;i++)
{

var row = document.createElement('TR');
for (j=0;j<x[i].childNodes.length;j++)
{
if (x[i].childNodes[j].nodeType != 1) continue;
var container = document.createElement('TD');
var theData = document.createTextNode(x[i].childNodes[j].firstChild.nodeValue);
empreradores.options[i] = new Option(x[i].childNodes[0].firstChild.nodeValue,i);
container.appendChild(theData);
row.appendChild(container);
}
tmp.appendChild(row);
}
document.getElementById('writeroot').appendChild(newEl);
}
</script>
</head>

<body onload="importXML()">
<div id="writeroot"></div>
<select id="empreradores"></select>
</body>
</html>

 


El único problema que todavía no he solucionado es cómo leer desde Firefox
Autor: perrogrun
2005-08-02 13:45:02


Realiza tu comentario acerca del artículo
Usuario
Email
Comentario

* Para escribir código usa las etiquetas [code] tu código [/code]