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

标签 java xml parsing character sax

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

<journal>Universit&auml;t Trier</journal>

当我运行 SAX 解析器时,我意识到它将把字符串分成 2

String 1: Universit
String 2: &auml;t Trier

但是,我需要将内容作为一个完整的字符串读取,以便正确存储在数据库中。我不能把它分成 2 个字符串。为什么 SAX 解析器要这样做?

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

public void characters(char ch[], int start, int length) throws SAXException 
{
                       ...
}

最佳答案

这不是一个错误。

这就是 SAX 的设​​计方式,并且需要采用这种方式才能处理混合内容。

没有混合内容,它实际上非常简单。

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

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

关于java - SAX 解析器;读取特殊字符时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19337658/

相关文章:

java - lwjgl,仅旋转屏幕上的一个对象?

java - 动态修改 Tapestry 5 中的 FormInjector 上下文信息

java - 如何以供应商中立的方式使用 JPA?

jquery - Odoo Pos-QWeb2 : Error while extending template No expression given

java - 如何在JAVA中使用htmlparsing和curl来完成这个任务...?

c++ - 在 EBNF 或 GNU Bison 语法中使用方括号/圆括号

java - 如何同时打开两个JFrame?

python - 如何将Pandas read_xml设置为特定节点?

xml - xsl 键与 xpath 谓词匹配

Java-使用正则表达式解析具有复系数的多项式