2011-01-03 1 views
0

Dans l'application BlackBerry, j'utilise l'analyseur SAX pour analyser mon XML.Je sais comment faire l'analyse SAX à l'aide de l'interface ContentHandler.Mais je veux analyser mon XML en utilisant la classe DefaultHandler afin que je peut fournir des définitions de seulement les méthodes dont j'ai besoin. quelqu'un peut-il s'il vous plaît me fournir un exemple de code comme comment puis-je utiliser la DefaultHandler classe pour faire SAX analyse syntaxique dans BlackBerryComment utiliser la classe DefaultHandler dans BlackBerry

Répondre

0

pour xml comme

<items> 
<item> 
    <title>title content </title> 
    .. 
</item> 
... 
</items> 



class XMLRSSHandler extends DefaultHandler { 

    static final String TITLE = "title"; 
    static final String ITEM = "item"; 

    boolean isItem = false; 
    boolean isTitle = false; 
    Vector items = new Vector(); 
    String value = ""; 

    private Item currentItem = null; 

    public XMLRSSHandler() { 
    } 

    public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { 
     if (name.equalsIgnoreCase(ITEM)) { 
      currentItem = new Item(); 
     } else if (currentItem != null) { 
      if (name.equalsIgnoreCase(TITLE)) { 
       isTitle = true; 
      } 
     } 
    } 

    public void characters(char[] ch, int start, int length) throws SAXException { 
     if (isTitle) { 
      value = new String(ch, start, length).trim(); 
     } 
    } 

    public void endElement(String uri, String localName, String name) throws SAXException { 
     if (isTitle && name.equalsIgnoreCase(TITLE)) { 
      isTitle = false; 
      currentItem.setTitle(value); 
      return; 
     } 
     if (currentAItem != null 
       && (name.equalsIgnoreCase(ITEM)) { 
      Logger.debug("Loaded Item " + currentItem.getTitle()); 
      items.addElement(currentArticle); 
      currentItem= null; 
     } 
    } 
} 
Questions connexes