java.lang.IllegalArgumentException异常:不支持的元件:RSS(ja

2019-09-30 00:14发布

我想“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();
    }
}

当我检查什么是“资源”的内部。 这似乎让这整个XML。 但后来,我想对它进行解码和获取:

java.lang.IllegalArgumentException: Unsupported element: rss

有人能帮助我吗? 我是新来的Java。

谢谢!

Answer 1:

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();
}


文章来源: java.lang.IllegalArgumentException: Unsupported element: rss