SAX解析器;阅读特殊字符时出错

时间:2013-10-12 18:24:18

标签: java xml parsing character sax

在我的XML文件中,我有一个具有特殊字符

的标记
<journal>Universit&auml;t Trier</journal>

当我运行SAX Parser时,我意识到它会将String分成2个

String 1: Universit
String 2: &auml;t Trier

但是我需要将内容作为一个完整的String读取才能正确存储在数据库中。我不能把它分成2个字符串。为什么SAX Parser会这样做呢?

以下方法是执行阅读

的SAX解析器的一部分
public void characters(char ch[], int start, int length) throws SAXException 
{
                       ...
}

1 个答案:

答案 0 :(得分:4)

这不是错误。

这只是SAX的设计方式,它需要这样才能有可能处理混合内容。

没有混合内容,实际上非常简单。

您需要做的是在您自己的SAX ContentHandler接口实现中重新组合片段。

通常,这意味着在StringBuilder方法中初始化StringBufferstartElement字段,在characters方法中附加该字段并将其转换为StringendElement方法中。