RSS阅读器与BOM错误

时间:2015-03-16 05:30:39

标签: java inputstream byte-order-mark rss-reader

我正在尝试将RSS Feed / XML文件读入我的应用程序。问题是我的inputStream不喜欢的BOM(字节顺序标记),它抛出一个错误,抛出另一个错误,一切都死了。

以下是方法:

private Document getDomFromXMLString(String xml) {
    Document doc = null;
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    try {
        DocumentBuilder db = dbf.newDocumentBuilder();
        InputSource is = new InputSource();
        is.setCharacterStream(new StringReader(xml));
        doc = db.parse(is);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return doc;
}

所以我想弄清楚如何有效地跳过BOM并输入文件的其余部分

1 个答案:

答案 0 :(得分:0)

如果你有一个字符流,而String是,那么跳过BOM就像剥离第一个字符一样简单,is the BOM

if (xml.charAt(0) == '\ufeff')
    xml = xml.substring(1);

但是,你真正应该做的是要求消息来源修复它的饲料; BOM不应该在那里。