Wednesday 23 November 2011

saxparsing

xml is......
<posts><post><ID>1</ID><Phone_No>15555215556</Phone_No><Phone_ID>0000000000000001</Phone_ID><Unique_Code>Ac26eO1</Unique_Code><Reg_Date>November 22, 2011</Reg_Date></post><post><ID>2</ID><Phone_No>15555215554</Phone_No><Phone_ID>000000000000000</Phone_ID><Unique_Code>URSqJCi</Unique_Code><Reg_Date>November 22, 2011</Reg_Date></post><post><ID>3</ID><Phone_No>15555215558</Phone_No><Phone_ID>0000000000000002</Phone_ID><Unique_Code>6R6kJN2</Unique_Code><Reg_Date>November 24, 2011</Reg_Date></post></posts>

  

/* call this constructor for saxparsing in any class and pass your url*
   
public    Getparsing(String URLS)
    {
     try {
            /** Send URL to parse XML Tags */
        Log.i("getting data","ffffst");
       
        Log.i("getting data","0000");   
       
        URL sourceUrl = new URL(URLS);
        Log.v("name", "4.1");
        SAXParserFactory spf = SAXParserFactory.newInstance();
        Log.v("name", ".4.2");
        SAXParser sp = spf.newSAXParser();
        XMLReader xr = sp.getXMLReader();
        Log.v("name", ".4.3");
        MyXMLHandler myXMLHandler = new MyXMLHandler();
        Log.v("name", "clicking.......4.4");
        xr.setContentHandler(myXMLHandler);
        Log.v("name", "clicking.......4.5");
        xr.parse(new InputSource(sourceUrl.openStream()));
       

     }
        catch (Exception e)
        {   
        System.out.println("XML Parsing Excpetion " + e);
        Log.i("ni chalda", "hai");
        }   
        /* getting data from webservice*/
    SitesList sitesList =new SitesList();
                    sitesList = MyXMLHandler.sitesList;
                    Log.i("size", ""+sitesList.getPhn_ID().size());
                    for (int i = 0; i < sitesList.getPhn_no().size(); i++)
                     {
                     Log.i("getting no",""+sitesList.getPhn_no().get(i));
                     }
                    for (int i = 0; i < sitesList.getPhn_ID().size(); i++)

                     {
                     Log.i("getting id",""+sitesList.getPhn_ID().get(i));
                     }
                    for (int i = 0; i < sitesList.getCode().size(); i++)
                     {
                     Log.i("getting c",""+sitesList.getCode().get(i));
                     }
    }
 




/* getter setter class SitesList*/


public class SitesList {

/** Variables */
private ArrayList<String> phn_no = new ArrayList<String>();
private ArrayList<String> phn_ID = new ArrayList<String>();
private ArrayList<String> code = new ArrayList<String>();
private ArrayList<String> DATE = new ArrayList<String>();

public ArrayList<String> getDATE() {
    return DATE;
}

public void setDATE(String DATE) {
    this.DATE.add(DATE);
}

public ArrayList<String> getPhn_no() {
    return phn_no;
}

public void setPhn_no(String phn_no) {
    this.phn_no.add(phn_no);
}

public ArrayList<String> getPhn_ID() {
    Log.i("karaval",""+phn_ID);
    return phn_ID;
}

public void setPhn_ID(String phn_ID) {
    Log.i("valuekaran",""+phn_ID);
    this.phn_ID.add(phn_ID);
}

public ArrayList<String> getCode() {
    return code;
}

public void setCode(String code) {
    this.code.add(code);
}
}


/*handler class to handle a webservice
here we put start element and end element */

public class MyXMLHandler extends DefaultHandler {
                       
                         Boolean currentElement = false;
                         String currentValue = null;  
                           
                            public static  SitesList sitesList ;
                       
                            public static SitesList getSitesList() {
                                return sitesList;
                            }
                       
                            public static void setSitesList(SitesList sitesList) {
                                MyXMLHandler.sitesList = sitesList;
                            }
                           
                           
                              @Override
                            public void startElement(String uri, String localName, String qName,
                                    org.xml.sax.Attributes attributes) throws SAXException {
                                // TODO Auto-generated method stub
                                  currentElement = true;
                                    if (localName.equals("posts"))
                                    {
                                        /** Start */
                                       
                                        sitesList = new SitesList();
                                    }
                            }
                           
                            @Override
                            public void endElement(String uri, String localName, String qName)
                               throws SAXException {
                                currentElement = false;
                               
                                if (localName.equalsIgnoreCase("Phone_No"))
                                     sitesList.setPhn_no(currentValue);
                                 else if (localName.equalsIgnoreCase("Phone_ID"))
                                         sitesList.setPhn_ID(currentValue);
                                 else if (localName.equalsIgnoreCase("Unique_Code"))
                                     sitesList.setCode(currentValue);
                                 else if (localName.equalsIgnoreCase("Reg_Date"))
                                         sitesList.setDATE(currentValue);
                                Log.i("krn",""+currentValue);
                                Log.i("krn222",""+currentElement);
                                Log.i("size222",""+sitesList.getPhn_no().size());
                            }
                           
                            @Override
                            public void characters(char[] ch, int start, int length)
                                    throws SAXException {
                       
                           if (currentElement) {
                                    currentValue = new String(ch, start, length);
                                    currentElement = false;
                                }
                       
                            }
                           
                           

                    }


No comments:

Post a Comment