Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Flash +XML = problema

  1. #1

    Flash +XML = problema

    Ho deciso per una serie di ragioni ( editabilità, comodità nell'editare etc ) di far leggere i contenuti di un sito flash da un file XML esterno così strutturato:
    codice:
    <?xml version="1.0"?>
    <testi>
    <testo name="prima"><![CDATA[testo della prima sezione]]></testo>
    <testo name="seconda"><![CDATA[testo della seconda sezione]]></testo>
    <testo name="terza"><![CDATA[testo della terza sezione]]></testo>
    </testi>
    <prima>
    <art name="xyxyxy">descrizione articolo</art>
    <art name="xyxyx">descrizione articolo</art>
    </prima>
    <seconda>
    <art name="yxyxyxy">descrizione articolo</art>
    <art name="xyxy">descrizione articolo</art>
    <art name="xyx">descrizione articolo</art>
    </seconda>
    <terza>
    <art name="xyxyxy">descrizione articolo</art>
    </terza>
    caricando l'XML in flash sono riuscito a popolare tre arrays con i dati delle varie sezioni, così..
    codice:
    testi=datiXml.firstChild.childNodes;
    prima=datiXml.firstChild.nextSibling.childNodes;
    seconda=datiXml.firstChild.nextSibling.nextSibling.childNodes;
    terza=datiXml.firstChild.nextSibling.nextSibling.nextSibling.childNodes;
    ..ora il problema è che inserendo, per esempio, in una textarea un valore contenente tags html (opportunamente chiuso in CDATA nell'xml), le suddette non vengono interpretate come tag ma come testo semplice. Come posso risolvere?

    Inoltre, vorrei crearne degli arrays associativi, un po' come..

    codice:
    array[attributo.nome]=valoredelnodo
    pensate sia possibile?

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    92

    Re: Flash +XML = problema

    Originariamente inviato da JuRito
    <testo name="prima"><![CDATA[testo della prima sezione]]></testo>
    <testo name="seconda>seconda</testo>


    mi sembra che proprio l'aggiunta di CDDATA trasforma il testo in stringa semplice...devi passargli dati formattati proprio html

    <testo name="seconda>seconda</testo>

    a me cosi il campo impostato a verdana semplice diventa bold

    ciao juhzam

  3. #3
    senza usare CDATA il file XML diventa imparasabile perchè flash porello interpreta ( giustamente ) anche le tag html come tag xml..

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    92
    ok capisco...io cmq l'xml lo sfoglio in un altro modo...ho trovato uno script du flash-mx e ne ho preso spunto


    System.useCodePage = true;
    mioxml = new XML();
    myarray = new Array();
    myarray2 = new Array();
    myarray3 = new Array();
    myarray4 = new Array();
    idrecenti = new Array();
    titolo = new Array();
    schedarec = new Array();
    con = new Array();
    filmdi = new Array();
    foto = new Array();
    storedir = new Array();
    ApriXML();
    function ApriXML() {
    mioxml.load(filexml);
    mioxml.onLoad = ElaboraXML;
    function ElaboraXML(success) {
    if (mioxml.loaded) {
    myarray = mioxml.childNodes;
    for (j=0; j<=myarray.length; j++) {
    if (myarray[j].nodeName == "schede") {
    myarray2 = myarray[j].childNodes;
    for (i=0; i<=myarray2.length; i++) {
    if (myarray2[i].nodeName == "recenti") {
    myarray3 = myarray2[i].childNodes;
    for (k=0; k<=myarray3.length; k++) {
    if (myarray3[k].nodeName == "scheda") {
    schedarec.push(myarray3[k].childNodes.toString());
    myarray4 = myarray3[k].childNodes;
    for (z=0; z<myarray4.length; z++) {
    if (myarray4[z].nodeName == "titolo") {
    titolo.push(myarray4[z].childNodes.toString());
    }
    if (myarray4[z].nodeName == "con") {
    con.push(myarray4[z].childNodes.toString());
    }
    if (myarray4[z].nodeName == "filmdi") {
    filmdi.push(myarray4[z].childNodes.toString());
    }
    if (myarray4[z].nodeName == "minimanifesto") {
    foto.push(myarray4[z].childNodes.toString());
    }
    if (myarray4[z].nodeName == "storedir") {
    storedir.push(myarray4[z].childNodes.toString());
    }
    }
    }
    }
    }
    }
    }
    }
    }
    riempi();
    // delete myarray;
    // delete myarray2;
    // delete myarray3;
    // delete mioxml;
    }
    }

    in poche parole sfoglio i nodi primari e secondari tramite array fittizi e quando incontro i dati che mi servono li schiaffo nel mio array precedentemente creato,in questo modo nn si sbaglia e prende i tag che mi interessano a me.

    cmq se ti interessa leggi questa guida
    http://flash-mx.html.it/guide/lista_...asp?idguida=10

    ciao juhzam

  5. #5
    alla fine ho risolto usando XML2obj.
    davvero valido.

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.