2011-01-28 22 views
0
private class RSSHandler extends DefaultHandler 
{ 
    final int stateUnknown = 0; 
    final int stateTitle = 1; 
    int state = stateUnknown; 

    int numberOfTitle = 0; 
    String strTitle = ""; 
    String strElement = ""; 

    @Override 
    public void startDocument() throws SAXException { 
     // TODO Auto-generated method stub 
     strTitle = "--- Start Document ---\n"; 
    } 

    @Override 
    public void endDocument() throws SAXException { 
     // TODO Auto-generated method stub 
     strTitle += "--- End Document ---"; 
     streamTitle = "Number Of Title: " + String.valueOf(numberOfTitle) + "\n" 
        + strTitle; 
    } 

    @Override 
    public void startElement(String uri, String localName, String qName, 
      Attributes attributes) throws SAXException { 
     // TODO Auto-generated method stub 
     if (localName.equalsIgnoreCase("title")) 
     { 
      state = stateTitle; 
      strElement = "Title: "; 
      numberOfTitle++; 
     } 
     else if (localName.equalsIgnoreCase("link")) 
     { 
      state = stateTitle; 
      strElement = "Link: "; 
      numberOfTitle++; 
     } 
     else 
     { 
      state = stateUnknown; 
     } 
    } 

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

     // TODO Auto-generated method stub 
     if (localName.equalsIgnoreCase("title")) 
     { 
      strTitle += strElement + "\n"; 
     } 
     else if (localName.equalsIgnoreCase("link")) 
     { 
      strTitle += strElement + "\n"; 
     } 

     state = stateUnknown; 
    } 

    @Override 
    public void characters(char[] ch, int start, int length) 
      throws SAXException { 
     // TODO Auto-generated method stub 
     String strCharacters = new String(ch, start, length); 
     if (state == stateTitle) 
     { 
      strElement += strCharacters; 
     } 
    } 

} 

すべてのレベルですべての "リンク"と "タイトル"要素を取得しました。しかし、私は "タイトル"要素だけの子を取得するために入力する必要があります。例:android rss parsing、子要素を取得

<title>foo</title> 
    <item> 
     <title>bar</title> 
    </item> 

「バー」のみが必要です。おかげ代わりに、私はあなたがここに行くことをお勧めします、あなたの質問に答えるの

答えて

0
+2

あなたが何かを提案したい場合は、代わりにそれを答えるの質問にコメントを検討してください。 –

関連する問題