Autore Topic: Parsing XML con SAX  (Letto 750 volte)

Offline Aryon Solutions S.r.l. - Paolo

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung next
  • Sistema operativo:
    Windows 7
Parsing XML con SAX
« il: 11 Gennaio 2012, 17:18:09 CET »
0
Ciao a tutti,
spero tanto che voi potete darmi una mano, poiché mi serve assolutamente.
incomincio a scrivervi un esempio di XML:
<HOMEPAGE>
<EVENTI>
        <TITLE> Primo Titolo</TITLE>
        <SECONDO>aaaaaaaaaaa</SECONDO>
         <TERZO>bbbbbbbbbbb</TERZO>
        <TITLE> Secondo Titolo</TITLE>
        <SECONDO>cccccccccccc</SECONDO>
         <TERZO>dddddddddddd</TERZO>
        <TITLE> Terzo Titolo</TITLE>
        <SECONDO>eeeeeeeeeeeeee</SECONDO>
         <TERZO>fffffffffffffffffffffff</TERZO>
</EVENTI>
<NOTIZIE>
        <TITLE> Primo Titolo</TITLE>
        <SECONDO>aaaaaaaaaaa</SECONDO>
         <TERZO>bbbbbbbbbbb</TERZO>
        <TITLE> Secondo Titolo</TITLE>
        <SECONDO>cccccccccccc</SECONDO>
         <TERZO>dddddddddddd</TERZO>
        <TITLE> Terzo Titolo</TITLE>
        <SECONDO>eeeeeeeeeeeeee</SECONDO>
         <TERZO>fffffffffffffffffffffff</TERZO>
</NOTIZIE>
<GIOCHI>
        <TITLE> Primo Titolo</TITLE>
        <SECONDO>aaaaaaaaaaa</SECONDO>
         <TERZO>bbbbbbbbbbb</TERZO>
        <TITLE> Secondo Titolo</TITLE>
        <SECONDO>cccccccccccc</SECONDO>
         <TERZO>dddddddddddd</TERZO>
        <TITLE> Terzo Titolo</TITLE>
        <SECONDO>eeeeeeeeeeeeee</SECONDO>
         <TERZO>fffffffffffffffffffffff</TERZO>
</GIOCHI>
</HOMEPAGE>


Il codice scritto da me, prende tutti i <TITLE> <SECONDO> <TERZO> stampandomeli a video...fin'ora và bene; purtroppo ora mi servono tutti i <TITLE> <SECONDO> <TERZO> presenti all'interno di <EVENTI>

Come faccio??? Vi prego aiutatemi :(

Offline Aryon Solutions S.r.l. - Paolo

  • Nuovo arrivato
  • *
  • Post: 42
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Samsung next
  • Sistema operativo:
    Windows 7
Re:Parsing XML con SAX
« Risposta #1 il: 11 Gennaio 2012, 18:46:10 CET »
0
ora vi metto anche il codice della classe interessata
Codice (Java): [Seleziona]
package com.androidpeople.xml.parsing;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;


public class eventiHandler extends DefaultHandler {

        Boolean currentElement = false;
        String currentValue = null;
       
       
        //ImageView currentValueImage = null;
       
        public static SitesListEventi sitesList = null;

        public static SitesListEventi getSitesList() {
                return sitesList;
        }

        /** Called when tag starts ( ex:- <name>AndroidPeople</name>
         * -- <name> )*/

        @Override
        public void startElement(String uri, String localName, String qName,
                        Attributes attributes) throws SAXException {

                currentElement = true;
               

                if (localName.equals("EVENTI"))
                {
                        /** Start */
                                sitesList = new SitesListEventi();
                       
                }

        }

        /** Called when tag closing ( ex:- <name>AndroidPeople</name>
         * -- </name> )*/

        @Override
        public void endElement(String uri, String localName, String qName)
                        throws SAXException {

                currentElement = false;

                if (localName.equalsIgnoreCase("TITLE"))
                        sitesList.setTitolo(currentValue);
                else if (localName.equalsIgnoreCase("SECONDO"))
                        sitesList.setAnagrafica(currentValue);
                else if (localName.equalsIgnoreCase("TERZO"))
                        sitesList.setCorpo(currentValue);
                       
                       
        }

        /** Called to get tag characters ( ex:- <name>AndroidPeople</name>
         * -- to get AndroidPeople Character ) */

        @Override
        public void characters(char[] ch, int start, int length)
                        throws SAXException {

                if (currentElement) {
                        currentValue = new String(ch, start, length);
                        currentElement = false;
                }

        }

}