criar função de Ler Xml
opa!
galera criei um script que lê uma arquivo XML, e caso tenham atributos ele também lê!!!
o grande lance agora é, colocar ele num função e ser recursivo!
segue o código
xml de teste [ pessoa.xml ]
<?xml version="1.0" ?>
<pessoa>
<identificacao id="1">
<nome>Joao</nome>
<email>joao@mail.com</email>
</identificacao>
<identificacao id="2">
<nome familia="ze" data="2">Maria</nome>
<email>maria@mail.com</email>
</identificacao>
</pessoa>
htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Ler XML by programador_php [ imasters forum ]</title>
<script>
function lerXml(nomeXML){
if(window.XMLHttpRequest){
var Loader = new XMLHttpRequest();
Loader.open("GET", nomeXML ,false);
Loader.send(null);
return Loader.responseXML;
}else if(window.ActiveXObject){
var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
Loader.async = false;
Loader.load(nomeXML);
return Loader;
}
}
function leAtributos(obj) {
var texto = "";
if (obj.nodeType == 1) {
if (obj.attributes.length > 0) {
for (z = 0; z < obj.attributes.length; z++) {
texto += "nome do atributo de " + obj.nodeName + ": " + obj.attributes[z].nodeName +
"=>" + obj.attributes[z].nodeValue + "<br />";
}
}
}
return texto;
}
var arquivo = lerXml("pessoa.xml");
var str = "";
for (i = 0; i < arquivo.childNodes.length; i++) {
for (y = 0; y < arquivo.childNodes[i].childNodes.length; y++) {
str += leAtributos(arquivo.childNodes[i].childNodes[y]);
if (arquivo.childNodes[i].childNodes[y].nodeType == 1) {
str += "nome do noh semi-principal: " +
arquivo.childNodes[i].childNodes[y].nodeName +
"<br />";
for (w = 0; w < arquivo.childNodes[i].childNodes[y].childNodes.length; w++) {
if (arquivo.childNodes[i].childNodes[y].childNodes[w].nodeType == 1) {
str += "Nome do noh semi-semi-principal: " +
arquivo.childNodes[i].childNodes[y].childNodes[w].nodeName +
"<br />";
str += leAtributos(arquivo.childNodes[i].childNodes[y].childNodes[w]);
str += arquivo.childNodes[i].childNodes[y].childNodes[w].nodeName +
"=> " +
arquivo.childNodes[i].childNodes[y].childNodes[w].firstChild.nodeValue +
"<br />";
}
}
}
}
}
document.write ( str );
</script>
</head>
<body>
</body>
</html>Discussão (5)
Carregando comentários...