[era: aiuto !!!] Lettura dati XML e JS

  • Creatore Discussione Creatore Discussione kekko
  • Data di inizio Data di inizio

kekko

Nuovo Utente
24 Gen 2006
3
0
0
Ho questo codici ma nn riesco a capire come modificarlo per farlo funzionare per visualizzare il fil xml!

<?xml version="1.0" encoding="iso-8859-1"?>
<!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">
<head>
<title>Visualizzare pi&ugrave; elementi con DOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" FOR="window" EVENT="ONLOAD" type="text/javascript">
HTMLCode = " ";
Document = dsostudenti.XMLDocument;
// ciclo per memorizzare gli studenti
for (i=0;
i < Document.documentElement.childNodes.length;
i++)
{
HTMLCode +=
("<span style='font-weight:bold'>Nome : </span>"
+ Document.documentElement.childNodes(i).childNodes(0).text
+ "<br />"
+ "<span style='font-weight:bold'>Cognome: </span>"
+ Document.documentElement.childNodes(i).childNodes(1).text
+ "<br />"
+ "<span style='font-weight:bold'>Matricola: </span>"
+ Document.documentElement.childNodes(i).childNodes(2).text
+ "<br />"
+ "<span style='font-weight:bold'>Titolo di studio: </span>"
+ Document.documentElement.childNodes(i).childNodes(3).text
+ "<br />"
+ "<span style='font-weight:bold'>Telefono: </span>"
+ Document.documentElement.childNodes(i).childNodes(4).text
+ "<br />"
+ "<span style='font-weight:bold'>Email: </span>"
+ Document.documentElement.childNodes(i).childNodes().text
+ "<p>")
}

DisplayDIV.innerHTML=HTMLCode;
</script>

</head>

<body>
<XML ID="dsostudenti" SRC="esercizio3.xml"></XML>

<H2>Elenco studenti</H2>

<DIV ID="DisplayDIV"></DIV>

</body>
</html>

Questo e' il file xml ke dovrebbe stanpare a video

<?xml version="1.0"?>
<!-- nome del file esercizio3.xml-->
<STUDENTI>
<studente>
<nome>Mario </nome>
<cognome>Rossi</cognome>
<matricola>123456</matricola>
<titolo_studio>Maturita Classica</titolo_studio>
<telefono>080-5000</telefono>
<telefono>080-5000</telefono>
<email>[email protected]</email>
</studente>
<studente>
<nome>Gianni</nome>
<cognome>Filippetti</cognome>
<matricola>129457</matricola>
<titolo_studio>Altra Laurea</titolo_studio>
<email>348-5000</email>
</studente>

</STUDENTI>
 
Mi hai fatto impazzire! :)

Ho sistemato il codice XHTML/JS

<?xml version="1.0" encoding="iso-8859-1"?>
<!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">
<head>
<title>Visualizzare pi&ugrave; elementi con DOM</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<xml id="dsostudenti" src="esercizio3.xml"></xml>
<h2>Elenco studenti</h2>
<script language="JavaScript" for="window" event="onload" type="text/javascript">
var HTMLCode = "";
var Document = dsostudenti.XMLDocument;
var lunghezza = Document.documentElement.childNodes.length;
for (var i=0; i<lunghezza; i++)
{
HTMLCode +=
"<p><b>Nome : </b>" + Document.documentElement.childNodes(i).childNodes(0).text + "<br />"
+ "<b>Cognome: </b>" + Document.documentElement.childNodes(i).childNodes(1).text + "<br />"
+ "<b>Matricola: </b>" + Document.documentElement.childNodes(i).childNodes(2).text + "<br />"
+ "<b>Titolo di studio: </b>" + Document.documentElement.childNodes(i).childNodes(3).text + "<br />"
+ "<b>Telefono: </b>" + Document.documentElement.childNodes(i).childNodes(4).text + "<br />"
+ "<b>Email: </b>" + Document.documentElement.childNodes(i).childNodes(5).text + "<p>";
}
document.getElementById("DisplayDIV").innerHTML = HTMLCode;
</script>
<div id="DisplayDIV"></div>
</body>
</html>

Il codice XML, invece, aveva un errore: il campo <telefono> era due volte solo nel primo record, l'ho sistemato. Guarda un po

<?xml version="1.0"?>
<!-- nome del file esercizio3.xml-->
<STUDENTI>
<studente>
<nome>Mario </nome>
<cognome>Rossi</cognome>
<matricola>123456</matricola>
<titolo_studio>Maturita Classica</titolo_studio>
<telefono>080-5000</telefono>
<email>[email protected]</email>
</studente>
<studente>
<nome>Gianni</nome>
<cognome>Filippetti</cognome>
<matricola>129457</matricola>
<titolo_studio>Altra Laurea</titolo_studio>
<telefono>080-5000</telefono>
<email>348-5000</email>
</studente>
</STUDENTI>

Ciao :byebye:
 
C'è senza dubbio qualche incompatibilità che adesso, senza firefox, non posso testare.

In ogni caso XML, per me, deve interfacciarsi con un linguaggio lato server, non lato client.
 
il codice xml era giusto!L' elemento telefono deve cpmparire 2 volte nel primo studente e nn deve comparire nel secondo studente!Il problema e proprio quello! ke quando nn viene visto trovato un elemento l' HTMLcode risulta nullo
 
inanzitutto volevo ringraziarvi per la disponibilita...Perke stravolge le regole quel file xml? Nn puo essere ke in un elemento studente ci siamo 2 elementi telefono e in altro studente nn c'e ne siano? Quidi visualizzare il file xml che avevo io con un dom e' impossibile!Se cosi fosse mi spiegeresti il perke?QUesto file nn mi sta facedno dormire tranquillo la notte :crying: :crying:
 
il file xml con due elementi uguali nello stesso nodo viene visualizzato lo stesso nel browser ma non è corretto... è come se su un database avessi due campi con lo stesso nome: il dbms te lo fa creare (credo...) ma poi? è la stessa cosa

il dom non lo riconosce e dovrebbe essere un potivo sufficiente a non usare questo sistema

ti dico

1. usa differentemente il dom, quindi con getElementByTagName (rif. articolo che ti ho segnalato)

2. usalo lato server, non lato client

3. usa i campi

<telefono>000#111</telefono>

nel primo nodo, usando il # come carattere separatore, e

<telefono></telefono>

nel secondo

mi spiego?
 

Discussioni simili