0

エンクロージャ タグの「url」属性を解析したい

android.sax パーサーを使用して DefaultHandler.any を使用するサンプルのみを見てきました。

Enclosure タグはタグ「Item」内にあります

コード:

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 に答える