请帮我解决这个问题: 我在java中使用sax解析器解析一些xml文件。但是,当解析器检测到&它不会进一步解析当前行并转移到解析下一个元素。
我尝试过StringEscapeUtils.escapeHtml(String),但它没有用。
提前致谢。
答案 0 :(得分:0)
当遇到&
或其他分隔符时,SAXParser会将文本元素拆分为一个或多个单独的块。
我是这样做的,在startElement回调中读取当前元素名称,将其存储在某处,连接块。
@Override public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
String value = new String(ch, start, length);
String oldval = cachedProps.get(elemName);
if (oldval!=null) value = oldval+value;
cachedProps.put(elemName, value);
}
您可能希望学习StAXParser以将XML文件作为流读取。它通常更适合和自己的应用程序可控制。 SAX回调接口有时候很难用。