XSLT e javascript

Cosimo

Nuovo Utente
14 Set 2007
1
0
0
Salve a tutti

ho il seguente file xml:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="biblioteca.xsl"?>


<biblioteca>

<libro>
<autore>J.R.R. Tolkien</autore>
<titolo>Il Signore degli Anelli</titolo>
<descrizione>Fantastica storia epica fantastica medievale</descrizione>
<prezzo>100</prezzo>
</libro>

<libro>
<autore>B. Stocker</autore>
<titolo>Dracula</titolo>
<descrizione>La storia del noto vampiro transilvano</descrizione>
<prezzo>50</prezzo>
</libro>

<libro>
<autore>D. Defoe</autore>
<titolo>Moll Flanders</titolo>
<descrizione>La storia di una ladra e prostituta</descrizione>
<prezzo>35</prezzo>
</libro>

</biblioteca>

a cui ho associato il seguente file xslt con all'interno un javascript
<?xml version="1.0" encoding="utf-8"?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:svg="http://www.w3.org/2000/svg">
<xsl:eek:utput method="html"/>

<xsl:template match="/">

<html>
<head>
<title>Biblioteca</title>
</head>

<body>
<script language="javascript" type="application/javascript">
<!--
var objXml= new ActiveXObject("Microsoft.XMLDOM");

objXml.async = false;
objXml.load("biblioteca.xml");


// Leggo tutti i nodi del file col metodo getElementsByTagName()
var autore = objXml.getElementsByTagName("libro/autore");
var titolo = objXml.getElementsByTagName("libro/titolo");
var descrizione = objXml.getElementsByTagName("libro/descrizione");
var prezzo = objXml.getElementsByTagName("libro/prezzo");
var i = 0;

// Ciclo tutti i nodi utilizzando la proprietàtext per la lettura
with(document)
{
for (i=0; i<autore.length; i++)
{
document.write("Autore: " + autore.text + "<br>");
document.write("Titolo: " + titolo.text + "<br>");
document.write("Decrizione: " + descrizione.text + "<br>");
document.write("Prezzo: " + prezzo.text + "<br><br>");
}
}
-->
</script>

</body>
</html>

</xsl:template>
</xsl:transform>


Sapete dirmi per quale motivo quando apro il file xml, IE mi visualizza una pagina bianca???

La cosa divertente è che se creo un file HTML con all'interno lo stessisimo script, il tutto funziona.....Ma ?!?!?!?!?!

AIUTOOOOOOOOOOOOOOOOOOOOOOOO!!!!!
 

lukeonweb

Utente Attivo
5 Mar 2003
5.180
10
38
42
Napoli
www.lucaruggiero.it
Il problema è qui:

with(document)
{
for (i=0; i<autore.length; i++)
{
document.write("Autore: " + autore.text + "<br>");
...

Se usi with non devi ripetere l'oggetto che stai passando stesso a with, quindi:

with(document)
{
for (i=0; i<autore.length; i++)
{
write("Autore: " + autore.text + "<br>");
...

OK?

Una domanda: dal file XML e da altri codici mi puzza tanto dell'esempio di un mio articolo... puoi postarmi il link da dove lo hai scaricato per favore?

Grazie :)