エンクロージャ タグの「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;
}