Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Lettura XML

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87

    Lettura XML

    Ho il seguente file XML :

    Codice PHP:
    <?xml version="1.0" encoding="iso-8859-15" ?>
    <site_status>
    <site name="PLD" activemembers="5">
    <member name="Feedom" id="26" laston="Recently">
    <citta>Roma</citta>
    <occupazione>studente</occupazione>
    <eta>21</eta>
    <rank>9</rank>
    <tp>59</tp>
    <ltp>38</ltp>
    <td>51</td>
    <ltd>24</ltd>
    <an>True</an>
    </member>
    <member name="ggh" blabla ....>
    </member>
    </site>
    <list>
    </list>
    </site_status>
    e pensavo di accedervi con il seguente codice :

    Codice PHP:
    var xmlLoader = new XML();
        
    xmlLoader.ignoreWhite true;
        
    xmlLoader.onLoad analizzaDati;
        
    xmlLoader.load("131.xml");

    function 
    analizzaDati(successo) {
        if(
    successo) {
            
    listaMB xmlLoader.firstChild.firstChild.childNodes;
            for(
    i=0listaMB.lenghti++) {
            
    boxMB.addItem(listaMB[i].attributes.name);
                }
        
    listPG.sortItemsBy("label""ASC");
        
    listPG.setSelectedIndex(0);
        }

    in cui boxMB è una combobox che vorrei popolare con i nomi presi dall'XML. Una volta selezionato il nome dalla lista vorrei accedere ad alcuni altri nodi dell'XML e visualizzarli in dei campi di testo. Però anche semplicemente il codice che ho postato sopra non funziona, dove sbaglio?

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Prima che lo provi: cosa non riesci a fare, a popolare il combobox?

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Allora il combobox sono riuscito a popolarlo con questo codice:




    Codice PHP:
    var xmlLoader = new XML();
        
    xmlLoader.ignoreWhite true;

        
    xmlLoader.load("131.xml");
        
    xmlLoader.onLoad analizzaDati;
        
    function 
    analizzaDati(successo) {
        if(
    successo) {
            
    listaMB xmlLoader.firstChild.firstChild.childNodes;
            
    listMB.addItem("");
            for(
    i=0;i<listaMB.length;i++)
                {
    listMB.addItem(listaMB[i].attributes.name);}
            
    listMB.sortItemsBy("Label""ASC");
            
    listMB.setSelectedIndex(0);
        }

    Il codice precedente era sbagliato.

    Pensavo ora di accedere agli altri dati con questo codice :

    Codice PHP:
    function mostraMB() {
        var 
    mbToShow = new XML();
        for(
    i=0;i<listaMB.length;i++)
            {if(
    listaMB[i].attributes.name == listMB.getSelectedItem().label)
                {
    mbToShow listaMB[i].childNodes;}
            }
        for(
    j=0;j<mbToShow.length;j++)
            {if(
    mbToShow[j].nodeName == "citta")
                {
    citta.text mbToShow[i].nodeValue;
                }
            }

    Per prendere per esempio il dato "citta" e inserirlo in un campo di testo dinamico di nome istanza "citta". Però come risultato mi da null. La funzione mostraMB è messa come change handler della listbox e funziona.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Originariamente inviato da Joypsick
    Codice PHP:
    for(j=0;j<mbToShow.length;j++)
            {if(
    mbToShow[j].nodeName == "citta")
                {
    citta.text mbToShow[i].nodeValue;
                }
            } 
    La riga "citta.text = mbToShow[i].nodeValue;" è ovviamente
    "citta.text = mbToShow[j].nodeValue;"

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Ormai me la suono e me la canto da solo!! Spero di non averti fatto perdere tempo, ho capito dove sbagliavo, in pratica non sapevo che il testo compreso tra i tag (per esempio) <eta>21</eta> fosse considerato come un nodo figlio del tag eta e che andasse perciò estratto con citta.text = mbToShow[i].firstChild;

    Così mi funziona tutto!!

    Ora però avrei un'altra domanda : ho letto che Flash può accedere a file XML che risiedono solo nel dominio in cui risiede anche il filmato, ma anche che con linguaggi server side c'era un modo per ovviare a questa limitazione. Io conosco PHP, sapresti indicarmi la strada da seguire? Grazie!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Ah un'altra cosa :

    quando nei dati presi dall'XML c'è un apostrofo nel campo di testo dinamico mi appare la codifica HTML (&apos e credo che ciò accada anche per gli altri caratteri speciali, nonostante il campo di testo sia htmltext. Come mai?

  7. #7
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    >accedere a file XML che risiedono solo nel dominio in cui risiede anche il filmato

    http://www.macromedia.com/support/fl...ad_xdomain.htm

    >&apos

    devi settare:

    codice:
    testo.html = true;
    testo.htmlText = ...;

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    87
    Grazie infinite! ^_^

  9. #9

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.