android rss解析,获取子元素

时间:2011-01-28 14:39:50

标签: android xml rss

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;
        }
    }

}

现在我获得了所有级别的所有“链接”和“标题”元素。但是我需要输入什么来获得只有孩子们的“标题”元素。例如:

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

我只想要“酒吧”。感谢

1 个答案:

答案 0 :(得分:0)

我建议你去这里:Working with XML on Android

,而不是回答你的问题