Newsgroup: it.comp.lang.javascript
Titolo: accedere a database xml

Ciao a tutti
Sto creando una pagina html che tramite codice javascript accede ad un
database xml:
il database è questo:
http://user.informatik.uni-goettingen.de/~may/Mondial/terra.xml
il problema è che i nodi al di sotto del root sono diversi nel senso che ci
sono quelli col tag country, province ecc...
per questo motivo non riesco ad accedere ai nodi...
La modalità d'accesso come deve essere fatta di solito ? Con recordset
oppure usando childnodes ecc... ?
Il fatto è che se cancello manualmente i nodi sotto il root in modo tale da
fare rimanere solo quelli con lo stesso tag, tipo tutti i country, riesco ad
accedere agli attributi, diversamente non riesco ad accedervi...
Infatti per cominciare stavo provando a generare un semplice elenco degli id
di tutte le country... ma non ci riesco proprio ... senza pensare che devo
aggiungere funzioni per aggiungere eliminare modificare nodi ecc...
Come posso fare??
Scusate un povero niubbo
CiauzZ

 aggiungere funzioni per aggiungere eliminare modificare nodi ecc...
Scorri l'array sopra indicato e per ogni elementi prendi  il valore
dell'attributo id attraverso il metodo <elemento>.getAttribute("id");
Ricapitolando:
var myarr = new Array();
myarr = document.getElementsByTagName("country");
for (var i = 0; myarr.length; i++) {
    alert(myarr[i].getAttribute("id"));
}
L'ho scritta un po di fretta... spero vada bene.
Ciao,
--Gabriele

 ha scritto nel messaggio
news:0aFQa.174619$Ny5.4...@twister2.libero.it...


 ha scritto nel messaggio
news:0aFQa.174619$Ny5.4...@twister2.libero.it...


 file usando DB...
quindi fai getElementById("DB") e poi ?
Ciao,
--Gabriele

 ha scritto nel messaggio
news:8xWQa.177534$lK4.5...@twister1.libero.it...


 
http://user.informatik.uni-goettingen.de/~may/Mondial/terra.dtd
Passandoli con un parser XML viene fuori che terra.xml è ben-formato ma non
valido sulla base di quel DTD. Non so se questo è il motivo per cui
togliendo il riferimento al DTD ti funziona. Cmq:
La definizione che lo rende "non valido" è questa:
<!ELEMENT terra (country*, province*, city*, (mountain, desert, island,
river, lake, sea)*)
Infatti significa (anche se andiamo leggermente [OT]) che dentro terra
dovranno esserci:
0 o più elementi country seguiti da
0 o più elementi provincie seguiti da
0 o più elementi city seguiti da
0 o più sequenze di elementi mountain, desert, island, river, lake, sea in
questo ordine, dove ogni elemento compare esattamente una volta.
E' proprio questo esattamente una volta che da problemi al file terra.xml.
Il file invece è valido se l'element <terra> lo definisco cosi:
<!ELEMENT terra (country*, province*, city*, (mountain?, desert?, island?,
river?, lake?, sea?)*)>
che descrive:
0 o più elementi country seguiti da
0 o più elementi provincie seguiti da
0 o più elementi city seguiti da
0 o più sequenze di elementi mountain, desert, island, river, lake, sea in
questo ordine, dove ogni elemento compare al più una volta.
Ciao,
--Gabriele

> stasera è tardi farò delle prove domani mattina...
le prove con i tuoi script e il DTD giusto le ho fatte anche io... il fatto
è che resta il problema: se mantengo la riga che referenzia il DTD non
funziona.
Ho provato anche a fare il parsing con:
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument");
var pippo = xmlDoc.load("terra.xml");
il metodo load ritorna vero se ha caricato il doc, falso se non ci è
riuscito.
Nel caso in questione:
ritorna vero se elimino il riferimento al DTD
ritorna falso, se lo lascio (anche se lascio quello corretto).
Se qualcunosa spiegarmi anche me... sono curioso anche io a questo punto....
Vorrei fare qualche prova anche su Mozilla con l'oggetto DOMParser, per
capire se da gli stessi problemi ma non so se ce la faccio questa sera.
Ciao,
--Gabriele.

 ha scritto nel messaggio
news:gsfRa.180292$Ny5.5...@twister2.libero.it...
