我正试图“获取”RSS源。
public RssFeed(String url) {
_url = url;
String res = this.api.get(url);
ByteArrayInputStream bis = new ByteArrayInputStream(res.getBytes());
try {
bis.close();
} catch (IOException e) {
e.printStackTrace();
}
XMLDecoder decoder = new XMLDecoder(bis);
try {
Object xml = decoder.readObject();
_response = xml.toString();
} catch(Exception e) {
e.printStackTrace();
} finally {
decoder.close();
}
}
当我检查'res'里面的内容时。它似乎得到了整个XML。 但是,我正在尝试解码它,我得到:
java.lang.IllegalArgumentException: Unsupported element: rss
有人可以帮我吗?我是Java的新手。
谢谢!
答案 0 :(得分:1)
XMLDecoder
旨在用于XMLEncoder
创建的元素。由于您正在从Web上抓取此XML,因此根据这些类,此XML中的元素可能无效。使用更通用的XML解析器(例如DocumentBuilder::parse()
)来处理此问题。
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
try {
builder.parse(url);
} catch (IOException e) {
e.printStackTrace();
} catch (SAXParseException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}