0

我想解析附件标签中的“url”属性

我只看到了使用 DefaultHandler 的示例。使用 android.sax Parser 的任何方式

附件标签位于标签“项目”内

代码:

public List<Message> parse() throws IOException, SAXException {
        final Message currentMessage = new Message();
        RootElement root = new RootElement(RSS);
        final List<Message> messages = new ArrayList<Message>();
        Element channel = root.getChild(CHANNEL);

        channel.getChild(LASTBUILDATE).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                lastBuildDate = body;
            }
        });
        Element item = channel.getChild(ITEM);

        item.setEndElementListener(new EndElementListener(){
            public void end() {
                currentMessage.setLastBuildDate(lastBuildDate);
                messages.add(currentMessage.copy());
            }
        });
        item.getChild(TITLE).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setTitle(body);
            }
        });
        item.getChild(LINK).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setLink(body);
            }
        });


        item.getChild(DESCRIPTION).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setDescription(body);
            }
        });
        item.getChild(PUB_DATE).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setDate(body);
            }
        });
        item.getChild(CATEGORY).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setCategory(body);
            }
        });
        item.getChild(GUID).setEndTextElementListener(new EndTextElementListener(){
            public void end(String body) {
                currentMessage.setGuid(body);
            }
        });

        Xml.parse(this.getInputStream(), Xml.Encoding.UTF_8, root.getContentHandler());
        return messages;
    }
4

1 回答 1

0

我的回答是

Element enclosure = item.getChild(ENCLOSURE);
        enclosure.setStartElementListener(new StartElementListener() {

            @Override
            public void start(Attributes attributes) {
                currentMessage.setEnclosureUrl(attributes.getValue("url"));
            }
        });
于 2013-04-22T09:48:16.463 回答