gpt4 book ai didi

java - 无法解析包含 java 中的 html 字符实体的 xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:55:47 28 4
gpt4 key购买 nike

当xml包含html字符实体时,会抛出这样的异常

[com.ctc.wstx.exc.WstxLazyException] com.ctc.wstx.exc.WstxParsingException: Undeclared general entity "ensp"
at [row,col {unknown-source}]: [1,66475]

有没有什么方法可以声明通用实体,这样我就不必处理这个异常了。

最佳答案

如果您可以编辑正在解析的 XML,并且 XML 在文档的开头有 DOCTYPE 声明,则需要为 ensp 添加实体声明:

<!ENTITY ensp "&#8194;">

如果您可以编辑 XML,但它没有 DOCTYPE 声明,您可以创建一个通用的,如下所示:

<!DOCTYPE root [
<!ELEMENT root ANY>
<!ENTITY ensp "&#8184;">
]>
... content ...

其中 root 替换为您拥有的 XML 数据的文档元素(根元素)。

如果您想将所有 HTML 实体扩展为数字字符实体(不仅仅是 ensp),请查看 https://www.w3.org/TR/html5/single-page.html#named-character-referenceshttp://sgmljs.net/docs/html5.html#named-character-references .

如果您无权访问或不能更改或不想更改 XML(例如当您从网络中提取它时),那么您可能会幸运地使用 Java 的 JAXP API 来开发自定义 EntityResolver 并使用您的自定义实体解析器(参见 https://docs.oracle.com/javase/8/docs/api/org/xml/sax/EntityResolver.html)让您的 XML 解析管道。

关于java - 无法解析包含 java 中的 html 字符实体的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50270080/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com