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