java.lang.IllegalArgumentException:不支持的元素:rss
java.lang.IllegalArgumentException: Unsupported element: rss
我正在尝试 'GET' 一个 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.
的新手
谢谢!
XMLDecoder
用于 XMLEncoder
创建的元素。由于您是从网上抓取此 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();
}
我正在尝试 'GET' 一个 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.
的新手谢谢!
XMLDecoder
用于 XMLEncoder
创建的元素。由于您是从网上抓取此 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();
}