javasax解析器;读取特殊字符时出现错误
在我的XML文件中,我有一个带有特殊字符的标记
<journal>Universität Trier</journal>
当我运行SAX解析器时,我意识到它将把字符串分成2个部分
String 1: Universit
String 2: ät Trier
然而,我需要将内容作为一个完整的字符串来读取,以便正确地存储在数据库中。我不能把它分成两条线。为什么SAX解析器会这样做
下面的方法是执行读取操作的SAX解析器的一部分
public void characters(char ch[], int start, int length) throws SAXException
{
...
}
# 1 楼答案
这不是一个错误
这只是SAX的设计方式,为了处理混合内容,它需要采用这种方式
如果没有混合内容,它实际上相当简单
您需要做的是在自己的SAX
ContentHandler
接口实现中重新组合片段通常这意味着在
startElement
方法中初始化StringBuilder
或StringBuffer
字段,在characters
方法中附加到它,并在endElement
方法中将其转换为String