我正在构建一个解析以色列新闻网站(希伯来语)的新闻应用程序,我不断收到此错误" org.apache.harmony.xml.expatparser $ parseexception在第1行第17列格式不正确(无效令牌) )" 现在我知道问题在于编码... rss feed中的编码是" Windows-1255", rss feed" view-source:http://www.ynet.co.il/Integration/StoryRss2.xml" 我试过了:
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
RssHandler rh = new RssHandler();
input= new InputSource(new StringReader(feed));
input.setEncoding("Windows-1255");
sp.parse(input, rh);
但它不起作用...... 请帮我 ! 感谢
答案 0 :(得分:0)
你是如何读取字符串的提要的? xml可能在那里打破了,因为这似乎在我的Linux机器上没有错误(默认情况下是UTF8 charset)和Oracle的Java 8:
SAXParserFactory spf = SAXParserFactory.newInstance();
try {
SAXParser sp = spf.newSAXParser();
InputSource input = new InputSource(new URL("http://www.ynet.co.il/Integration/StoryRss2.xml").openStream());
sp.parse(input, new DefaultHandler() {
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
System.out.print(qName + ": ");
}
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
System.out.print(new String(ch, start, length));
}
});
} catch (Exception e) {
e.printStackTrace();
}
“org.apache.harmony.xml.expatparser $ parseexception”..您使用的是Apache Harmony吗?这是一个过时的Java实现,如果可能的话,尝试更新到更新的东西。我还建议使用Rome来阅读RSS Feed。