【发布时间】:2011-05-15 14:51:20
【问题描述】:
我正在开发一个基于用户偏好解析一个或多个 XML 提要的 Android 应用程序。是否可以通过向解析器提供一组我的 XML 提要的 URL 来一次解析(使用 SAX 解析器)多个 XML 提要?
如果不是,将来自不同 XML 提要的已解析项目列在一个列表中的另一种方法是什么?一种直观的方法是使用java.io.SequenceInputStream 来合并两个输入流。但是,这会引发 NullPointerException:
try {
URL urlOne = new URL("http://example.com/feedone.xml");
URL urlTwo = new URL("http://example.com/feedtwo.xml");
InputStream streamOne = urlOne.openStream();
InputStream streamTwo = urlTwo.openStream();
InputStream streamBoth = new SequenceInputStream(streamOne, streamTwo);
InputSource sourceBoth = new InputSource(streamBoth);
//Parsing
stream = xmlHandler.getStream();
}
catch (Exception error) {
error.printStackTrace();
}
List<Item> content = stream.getList();
return content;
【问题讨论】:
-
需要更多信息:您在哪里将 InputSource 分配给 SAXParser? xmlHandler 和 getStream() 方法的结果是什么对象?您实际使用的是 SAX 还是 StAX API?
-
托马斯,感谢您的帮助。我最终使用了 Don 建议的解决方案 - 这比在解析流之前尝试附加流更有意义。
标签: java android parsing merge