【发布时间】:2015-05-08 18:39:22
【问题描述】:
我尝试使用 android sax parser 解析这个 rss news。
final RSSItem currentMessage = new RSSItem();
RootElement root = new RootElement("rss");
final List<RSSItem> messages = new ArrayList<RSSItem>();
Element channel = root.getChild("channel");
Element item = channel.getChild(ITEM);
但我发现异常:
05-08 18:29:25.004 2820-2820/com.xmlsimplesaxparser V/SimpleRss2ParserDemo﹕ android.sax.BadXmlException: Line 1: Root element name does not match. Expected: 'rss', Got: 'http://backend.userland.com/rss2:rss'
当我添加命名空间时:
static final String NAMESPACE ="http://backend.userland.com/rss2";:
final RSSItem currentMessage = new RSSItem();
RootElement root = new RootElement(NAMESPACE, "rss");
final List<RSSItem> messages = new ArrayList<RSSItem>();
Element channel = root.getChild(NAMESPACE, "channel");
Element item = channel.getChild(NAMESPACE, ITEM);
我收到NullPointerException。如何在 sax 解析器中使用命名空间?
【问题讨论】:
-
你也可以发布你的 XML 吗?
-
你从哪里得到 NullPointerException?
-
item.setEndElementListener(new EndElementListener() { public void end() { messages.add(currentMessage.copy()); //NullPointerExeption } });