Java SAX解析器;读取特殊字符时出现错误

Java SAX解析器;读取特殊字符时出现错误,java,xml,parsing,character,sax,Java,Xml,Parsing,Character,Sax,在我的XML文件中,我有一个带有特殊字符的标记 <journal>Universit&auml;t Trier</journal> 然而,我需要将内容作为一个完整的字符串来读取,以便正确地存储在数据库中。我不能把它分成两条线。为什么SAX解析器会这样做 下面的方法是执行读取操作的SAX解析器的一部分 public void characters(char ch[], int start, int length) throws SAXException {

在我的XML文件中,我有一个带有特殊字符的标记

<journal>Universit&auml;t Trier</journal>
然而,我需要将内容作为一个完整的字符串来读取,以便正确地存储在数据库中。我不能把它分成两条线。为什么SAX解析器会这样做

下面的方法是执行读取操作的SAX解析器的一部分

public void characters(char ch[], int start, int length) throws SAXException 
{
                       ...
}
这不是一个bug

这只是SAX的设计方式,为了能够处理混合内容,它需要采用这种方式

如果没有混合内容,它实际上相当简单

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

通常这意味着在
startElement
方法中初始化
StringBuilder
StringBuffer
字段,在
characters
方法中附加到该字段,并在
endElement
方法中将其转换为
字符串。

这不是一个错误

这只是SAX的设计方式,为了能够处理混合内容,它需要采用这种方式

如果没有混合内容,它实际上相当简单

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


通常这意味着在
startElement
方法中初始化
StringBuilder
StringBuffer
字段,在
characters
方法中附加到该字段,并在
endElement
方法中将其转换为
String

查看并将答案标记为已接受?你还应该清理其他帖子,并提供一些后续信息。请看,你能把答案标记为已接受吗?你还应该清理其他帖子,并提供一些后续信息。短暂性脑缺血发作
public void characters(char ch[], int start, int length) throws SAXException 
{
                       ...
}