JS lê e gera nós e atributos de arquivo xml (compatível com IE, FF)
Foi difícil para mim encontrar essa coisa, mas encontrei mesmo assim.
Não posso guardar essas coisas boas para mim, então estou postando para compartilhar, ^_^ |
O código book.html é o seguinte:
+++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<cabeça>
<linguagem script="javascript">
var xmlDoc;
var navegar="";
função carregarXML()
{
var fileRoute="livros.xml"
se (janela.ActiveXObject)
{
xmlDoc = novo ActiveXObject('Msxml2.DOMDocument');
xmlDoc.async=false;
xmlDoc.load(fileRoute);
navegar = "ou seja";
}
senão if (document.implementation && document.implementation.createDocument)
{
xmlDoc=document.implementation.createDocument('', '', null);
xmlDoc.load(fileRoute);
navegar="ff";
}
outro
{
alert('Não compatível com este navegador!');
}
}
função getmensagem()
{
var msg='<table border="1" cellpacing="0" cellpadding="0" width="500">';
msg+='<tr><td width="90"></td><td width="100">Número do livro</td><td width="100">Número da categoria</td><td width= "110">Nome do livro</td><td width="100">Autor</td></tr>'
if(navegar=="ff")
{
var cNodes = xmlDoc.getElementsByTagName("livro");
for(j=0;j<cNodes.length;j++)
{
var bookID=xmlDoc.getElementsByTagName("livro")[j].getAttribute("id");
var sortID=xmlDoc.getElementsByTagName("livro")[j].getAttribute("sortID");
var bookTitle=xmlDoc.getElementsByTagName("título")[j].childNodes[0].nodeValue;
var bookAuthor=xmlDoc.getElementsByTagName("autor")[j].childNodes[0].nodeValue;
msg+='<tr><td>'+j+'</td><td>'+bookID+'</td><td width="100">'+sortID+'</td><td width="190 ">'+bookTitle+'</td><td width="120">'+bookAuthor+'</td></tr>'
}
}
senão if(navegar=="ie")
{
var estado = xmlDoc.readyState;
se (estado == 4)
{
var oNodes = xmlDoc.selectNodes("//livros/livro");
for(j=0;j<oNodes.length;j++)
{
var bookID=oNodes[j].getAttribute("id");
var sortID=oNodes[j].getAttribute("sortID");
var bookTitle=oNodes[j].childNodes[0].text;
var bookAuthor=oNodes[j].childNodes[1].text;
msg+='<tr><td>'+j+'</td><td>'+bookID+'</td><td width="100">'+sortID+'</td><td width="190 ">'+bookTitle+'</td><td width="120">'+bookAuthor+'</td></tr>'
}
}
}
mensagem+='</table>';
// alerta (mensagem)
document.getElementById("bookList").innerHTML=msg;
}
</script>
</head>
<body onload="loadXML();">
<div id="bookList" style="largura:500px;">
</div>
<table border="0" cellpacing="0" cellpadding="0" width="500">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tabela>
<input name="button" type="button" onclick="getmessage()" value="onclick" />
</body>
</html>
+++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++
O código books.xml é o seguinte:
+++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++
<?xml version="1.0" encoding="gb2312"?>
<livros>
<livro id="4" sortID="a4">
<title>autor4aa</title>
<autor>autor4</autor>
</livro>
<livro id="5" sortID="a5">
<title>autor55</title>
<autor>autor5</autor>
</livro>
<livro id="6" sortID="a6">
<title>título do livro</title>
<autor>autor6</autor>
</livro>
<livro id="7" sortID="a7">
<title>título do livro</title>
<autor>autor7</autor>
</livro>
<livro id="8" sortID="a8">
<title>título do livro</title>
<autor>autor8</autor>
</livro>
<livro id="15" sortID="a15">
<title>autor155</title>
<autor>autor15</autor>
</livro>
</livros>