gpt4 book ai didi

java - 在 XML 文档中,是否可以区分实体编码的字符和非实体编码的字符?

转载 作者:行者123 更新时间:2023-12-02 04:09:50 25 4
gpt4 key购买 nike

我正在向一个 XML 文档提供有关我需要解析的在线资源的元数据。不同的元数据项中有一组标签,这些标签以逗号分隔。这是一个例子:

<tags>Research skills, Searching&#44; evaluating and referencing</tags>

问题是这些“标签”之一包含逗号。标签内的逗号已编码,但用于分隔标签的逗号则未编码。我(当前)正在使用getText() method on org.dom4j.Node读取<tags>的文字内容元素,返回一个字符串。

问题是,据我所知,我无法区分我收到的字符串中编码的逗号(与未编码的逗号)。

除了编写自己的 XML 解析器之外,还有其他方法可以以更“原始”的状态访问此节点的文本内容吗? (即编码逗号仍然编码的状态。)

最佳答案

当您使用 dom4j 或 DOM 时,所有实体都已解析,因此您需要返回到解析步骤来捕获字符引用。

SAX 是一个更底层的接口(interface),并通过其 LexicalHandler 接口(interface)提供支持,以便在解析器遇到实体引用时获得通知,但它不报告字符引用。所以看来您确实需要编写一个自己的解析器,或者修补现有的解析器。

但最后,如果您可以更改文档的架构,那就最好了:

<tags>
<tag>Research skills</tag>
<tag>Searching, evaluating and referencing</tag>
</tags>

在当前文档中,字符引用用作元数据。 XML 元素是表达这一点的更好方式。

关于java - 在 XML 文档中,是否可以区分实体编码的字符和非实体编码的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33900677/

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