在我的 XML 文件中,我有一个带有特殊字符的标记
<journal>Universität Trier</journal>
当我运行 SAX 解析器时,我意识到它将把字符串分成 2
String 1: Universit
String 2: ät Trier
但是,我需要将内容作为一个完整的字符串读取,以便正确存储在数据库中。我不能把它分成 2 个字符串。为什么 SAX 解析器要这样做?
以下方法是执行读取的 SAX 解析器的一部分
public void characters(char ch[], int start, int length) throws SAXException
{
...
}
最佳答案
这不是一个错误。
这就是 SAX 的设计方式,并且需要采用这种方式才能处理混合内容。
没有混合内容,它实际上非常简单。
您需要做的是在您自己的 SAX ContentHandler
接口(interface)实现中重新组合片段。
通常,这意味着在 startElement
方法中初始化 StringBuilder
或 StringBuffer
字段,并将其附加到 characters
中> 方法并在 endElement
方法中将其转换为 String
。
关于java - SAX 解析器;读取特殊字符时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337658/