SAX Parsing--Help in Android

General topics about the Android-Platform itself.
Coding issues please to the subforum right below.

SAX Parsing--Help in Android

Postby kites » Fri Sep 24, 2010 8:17 am

Hi plusminus,

My XML file is this
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. - <opml version="1">
  3. - <head>
  4.   <title>Radio</title>
  5.  
  6.   </head>
  7. - <body>
  8.   <outline type="link" text="Local" URL="http://..............." key="local" />
  9.   <outline type="link" text="Music" URL="http://.............." key="music" />
  10.   <outline type="link" text="walk" URL="http://...................." key="walk" />
  11.   <outline type="link" text="Sports" URL="http://..........." key="sports" />
  12.   <outline type="link" text="Place" URL="http://..............." key="Place" />
  13.   <outline type="link" text="Verbal" URL="http://............." key="Verbal" />
  14.   <outline type="link" text="Podcasts" URL="http://....................." key="podcast" />
  15.   </body>
  16.   </opml
  17.  
Parsed in 0.004 seconds, using GeSHi 1.0.8.4


My Handler.java code id this

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package com.org.android.Radio;
  2.  
  3. import java.util.ArrayList;
  4. import org.xml.sax.Attributes;
  5. import org.xml.sax.SAXException;
  6. import org.xml.sax.helpers.DefaultHandler;
  7.  
  8.  
  9. //import com.org.android.project_radio.TextItem;
  10.  
  11. public class Handler extends DefaultHandler{
  12.  
  13.          
  14.                 // ===========================================================
  15.                 // Fields
  16.                 // ===========================================================
  17.                
  18.         private boolean in_outertag = false;
  19.     private boolean in_innertag = false;
  20.     private boolean in_mytag = false;
  21.     private boolean in_mytag1 = false;
  22.     private boolean in_mytag2 = false;
  23.     ///////////
  24.     private boolean in_text_tag = false;
  25.     private boolean in_type_tag = false;
  26.                
  27.     private ArrayList<ParsedData> list = new ArrayList<ParsedData>();
  28.  
  29.    
  30.  
  31.    
  32.     private ParsedData myParsedData = new ParsedData();
  33.        
  34.                 // ===========================================================
  35.                 // Getter & Setter
  36.                 // ===========================================================
  37.          
  38.                 public ParsedData getParsedData() {
  39.                         return this.myParsedData;
  40.                 }
  41.          
  42.                 // ===========================================================
  43.                 // Methods
  44.                 // ===========================================================
  45.                 @Override
  46.                 public void startDocument() throws SAXException {
  47.                         this.myParsedData = new ParsedData();
  48.                 }
  49.          
  50.                 @Override
  51.                 public void endDocument() throws SAXException {
  52.                         // Nothing to do
  53.                 }
  54.          
  55.                 /** Gets be called on opening tags like:
  56.                  * <tag>
  57.                  * Can provide attribute(s), when xml was like:
  58.                  * <tag attribute="attributeValue">*/
  59.                 @Override
  60.                 public void startElement(String namespaceURI, String localName,
  61.                     String qName, Attributes atts) throws SAXException {
  62.                        
  63.             if (localName.equalsIgnoreCase("outline"))
  64.             {
  65.                     this.in_outertag = true;
  66.                     String attrValue = atts.getValue("type").toString();
  67.                     String attrValue1 = atts.getValue("text").toString();
  68.                     String attrValue2 = atts.getValue("URL").toString();
  69.                     String attrValue3 = atts.getValue("key").toString();
  70.                     this.myParsedData = new ParsedData();
  71.                     myParsedData.setExtractedStringtype(attrValue);
  72.                     myParsedData.setExtractedStringtext(attrValue1);
  73.                     myParsedData.setExtractedStringurl(attrValue2);
  74.                     myParsedData.setExtractedStringkey(attrValue3);
  75.                    
  76.                    // vector.addElement(ParsedData);
  77.             }      
  78.             }
  79.          //  }
  80.             /*if ( localName.equals( "text" ) )
  81.             {
  82.                 currentTextItem = new TextItem();
  83.                 TextItem.addElement( currentTextItem );
  84.              }
  85. */
  86.                 /** Gets be called on closing tags like:
  87.                  * </tag> */
  88.                 @Override
  89.                 public void endElement(String namespaceURI, String localName, String qName)
  90.             throws SAXException {
  91.                         if (localName.equalsIgnoreCase("outline")) {
  92.                                 this.in_outertag = false;
  93.                         }else if (localName.equalsIgnoreCase("type")) {
  94.                                 this.in_innertag = false;
  95.                         }else if (localName.equalsIgnoreCase("text")) {
  96.        
  97.                                 this.in_mytag = false;
  98.                         }else if (localName.equalsIgnoreCase("URL")) {
  99.                                 this.in_mytag1 = false;
  100.        
  101.                         }
  102.                         else if (localName.equalsIgnoreCase("key")) {
  103.                                 this.in_mytag2 = false;
  104.                         }
  105.                        
  106.                 }
  107.                
  108.                 /** Gets be called on the following structure:
  109.                  * <tag>characters</tag> */
  110.                 @Override
  111.                
  112.                // public void characters(char ch[], int start, int length) {
  113.                     // getLast()-Function is probably not existing, need to do on your own
  114.                    /*  if(this.in_type_tag){  
  115.                         // list.getClass().setExtractedString(new String(ch, start, length));
  116.                         // myParsedData = list.get(0);
  117.                          myParsedData.setExtractedStringtype(new String(ch, start, length));
  118.  
  119.                      }
  120.                      if(this.in_text_tag){
  121.                          myParsedData = list.get(0);
  122.                            //list.getLast().setExtractedDouble(Double.parseDouble(new String(ch, start, length)));
  123.                          myParsedData.setExtractedStringtext(Double.parseDouble(new String(ch, start, length)));
  124.  
  125.                      }
  126.                    }
  127.                 */
  128.                
  129.               /*  public void characters(char ch[], int start, int length)
  130.                 {
  131.                  if(this.in_innertag)
  132.                     {
  133.                         ParsedData.setExtractedStringtype(new String(ch, start, length));
  134.                     }
  135.                  else if (this.in_mytag)
  136.                     {
  137.                              ParsedData.setExtractedStringtext(new String(ch, start, length));
  138.                      }
  139.                  else if (this.in_mytag1)
  140.                     {
  141.                              ParsedData.setExtractedStringurl(new String(ch, start, length));
  142.                      }
  143.                  else if (this.in_mytag2)
  144.                     {
  145.                              ParsedData.setExtractedStringkey(new String(ch, start, length));
  146.                      }
  147.                 }*/
  148.  
  149.             public void characters(char ch[], int start, int length) {
  150.                         if(this.in_innertag){
  151.                         myParsedData.setExtractedStringtype(new String(ch, start, length));
  152.                 }
  153.             }
  154.         }
  155.  
  156.  
Parsed in 0.047 seconds, using GeSHi 1.0.8.4



I was not able to get all type aatributes.....

Kindly help me this How could I Parse this XML........Its urgent pls reply soon
kites
Once Poster
Once Poster
 
Posts: 1
Joined: Fri Sep 24, 2010 6:31 am

Top

Return to General

Who is online

Users browsing this forum: No registered users and 5 guests