【问题标题】:java.lang.IllegalArgumentException: Unsupported element: rssjava.lang.IllegalArgumentException:不支持的元素:rss
【发布时间】:2018-07-20 13:04:45
【问题描述】:

我正在尝试“获取”一个 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 新手。

谢谢!

【问题讨论】:

    标签: java rss ninjaframework


    【解决方案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();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-08-10
      • 2016-07-09
      • 2011-06-14
      • 2013-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-22
      • 2018-07-05
      相关资源
      最近更新 更多