Visualizzazione dei risultati da 1 a 5 su 5

Discussione: nodi XML

  1. #1

    nodi XML

    ciao a tutti, uso Flash MX Professional 2004.
    L'applicazione che sto realizzando legge dei dati da un foglio XML organizzato nel seguente modo:

    <Foglio1>
    ...
    ...
    </Foglio1>
    <Foglio1>
    <Unità>1</Unità>
    <Titolo>Vendita</Titolo>
    <Data>1397 gennaio 10</Data>
    <Luogo><![CDATA[ milano ]]></Luogo>
    <Contenuto><![CDATA[ testo testo testo ]]></Contenuto>
    <Dimensioni>mm 551x162</Dimensioni>
    <Sigillo>NO</Sigillo>
    <Segnatura>ACP 1</Segnatura>
    <URLIMG>A0010101FB.jpg</URLIMG>
    </Foglio1>
    <Foglio1>
    ...
    ...
    </Foglio1>
    ..ecc..


    con un ciclo "for" popolo un array ma, perdonate la mia ignoranza sull'argomento i campi dell'array oltre al testo tra i tag del foglio xml contengono anche gli stessi tag.
    Ovvero, ad esempio, andando a stampare un campo dell'array, come quello relativo alla "data", invece di visualizzare "1397 gennaio 10" viene visualizzato "<Data>1397 gennaio 10</Data>".

    Come posso fare per memorizzare nell'array solo i testi tra i tag?
    Potete farmi un esempio con il codice?

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di negatyve
    Registrato dal
    Feb 2001
    Messaggi
    9,479
    Se prima facevi:
    codice:
    variabile = xml.childNodes....firstChild;
    ora fai:
    codice:
    variabile = xml.childNodes....firstChild.nodeValue;

  3. #3
    grazie.. ora provo!

  4. #4
    ho provato e.. credo che il mio errore non sia nell'utilizzare il "nodeValue" ma piuttosto in un utilizzo non corretto del "push".. mi spiego meglio inserendo anche il codice:

    var dat:XML = new XML();
    var arrUnita:Array = new Array();
    var arrTitolo:Array = new Array();
    var arrData:Array = new Array();
    var arrLuogo:Array = new Array();
    var arrContenuto:Array = new Array();
    var arrDimensioni:Array = new Array();
    var arrSigillo:Array = new Array();
    var arrSegnaturaAnt:Array = new Array();
    var arrSegnatura:Array = new Array();
    var arrUrlImg:Array = new Array();
    var arrUrlSwf:Array = new Array();
    dat.ignoreWhite = true;
    dat.onLoad = function(success:Boolean) {
    if (success) {
    var dp:Array = new Array();
    var nodes:Array = this.firstChild.childNodes;
    for (var i = 0; i<nodes.length; i++) {
    var unodes:Array = nodes[i].childNodes;
    var item:String = new String();
    for (var j = 0; j<unodes.length; j++) {
    item[unodes[unodes.length-j-1].nodeName] = unodes[unodes.length-j-1].firstChild;
    }
    dp.push(item);
    }
    } else {
    trace("error");
    }

    //ORA FACCIO UN CICLO DI PROVA PER POPOLARE GLI ARRAY

    for (var i = 0; i<nodes.length; i++) {

    //CREDO CHE SIA PROPRIO IL "PUSH" A DARMI DEI
    //PROBLEMI PERCHè UTILIZZANDO L'UGUALIANZA
    // (x es.: arrUnita[i] = unodes[0].firstChild)
    //IL DATO VIENE ACQUISITO

    arrUnita[i].push(unodes[0].firstChild);
    arrTitolo[i].push(unodes[1].firstChild);
    arrData[i].push(unodes[2].firstChild);
    arrLuogo[i].push(unodes[3].firstChild);
    arrContenuto[i].push(unodes[4].firstChild);
    arrDimensioni[i].push(unodes[5].firstChild);
    arrSigillo[i].push(unodes[6].firstChild);
    arrSegnaturaAnt[i].push(unodes[7].firstChild);
    arrSegnatura[i].push(unodes[8].firstChild);
    arrUrlImg[i].push(unodes[9].firstChild);
    arrUrlSwf[i].push(unodes[10].firstChild);

    //------------------
    trace(arrUnita[i]);
    trace(arrData[i]);
    trace(arrLuogo[i]);
    trace(arrSigillo[i]);
    trace(arrSegnaturaAnt[i]);
    trace(arrSegnatura[i]);
    trace(arrUrlImg[i]);
    trace(arrUrlSwf[i]);
    //--------------------

    }
    };
    dat.load("data.xml");


    Nel caso dell'uguale, infatti, viene stampato il dato, mentre col "push" quando provo a stampare il contenuto dell'array viene restituito "undefined".

    Cosa sto sbagliando nell'uso del push?? ..o sto facendo un'altro tipo d'errore??

  5. #5
    Chiedo perdono ma, mi è andato in OFF il cervello.. se si tratta del "nodeValue".. come lo potrei inserire nel mio codice??

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.