我正在尝试将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并输入文件的其余部分
答案 0 :(得分:0)
如果你有一个字符流,而String
是,那么跳过BOM就像剥离第一个字符一样简单,is the BOM:
if (xml.charAt(0) == '\ufeff')
xml = xml.substring(1);
但是,你真正应该做的是要求消息来源修复它的饲料; BOM不应该在那里。