Java SAX解析器;读取特殊字符时出现错误
在我的XML文件中,我有一个带有特殊字符的标记Java SAX解析器;读取特殊字符时出现错误,java,xml,parsing,character,sax,Java,Xml,Parsing,Character,Sax,在我的XML文件中,我有一个带有特殊字符的标记 <journal>Universität Trier</journal> 然而,我需要将内容作为一个完整的字符串来读取,以便正确地存储在数据库中。我不能把它分成两条线。为什么SAX解析器会这样做 下面的方法是执行读取操作的SAX解析器的一部分 public void characters(char ch[], int start, int length) throws SAXException {
<journal>Universität Trier</journal>
然而,我需要将内容作为一个完整的字符串来读取,以便正确地存储在数据库中。我不能把它分成两条线。为什么SAX解析器会这样做
下面的方法是执行读取操作的SAX解析器的一部分
public void characters(char ch[], int start, int length) throws SAXException
{
...
}
这不是一个bug
这只是SAX的设计方式,为了能够处理混合内容,它需要采用这种方式
如果没有混合内容,它实际上相当简单
您需要做的是在您自己的SAXContentHandler
接口实现中重新组合片段
通常这意味着在startElement
方法中初始化StringBuilder
或StringBuffer
字段,在characters
方法中附加到该字段,并在endElement
方法中将其转换为字符串。这不是一个错误
这只是SAX的设计方式,为了能够处理混合内容,它需要采用这种方式
如果没有混合内容,它实际上相当简单
您需要做的是在您自己的SAXContentHandler
接口实现中重新组合片段
通常这意味着在startElement
方法中初始化StringBuilder
或StringBuffer
字段,在characters
方法中附加到该字段,并在endElement
方法中将其转换为String
。查看并将答案标记为已接受?你还应该清理其他帖子,并提供一些后续信息。请看,你能把答案标记为已接受吗?你还应该清理其他帖子,并提供一些后续信息。短暂性脑缺血发作
public void characters(char ch[], int start, int length) throws SAXException
{
...
}