Python3 SAX - 解析内部实体名称而不是解析它们

问题描述 投票:0回答:0

我想解析一个 XML 文档(JMdict 字典),它是一个条目列表,其中包含代表条目属性的元素,例如

<pos>&vr;</pos>
,其中内部实体
vr
在XML 文档为
<!ENTITY vr "irregular ru verb, plain form ends with -ri">
,其中实体值是人类可读的形式。

我当前的代码是用 Python 3.11 编写的,带有 xml.sax 包,通过实现 ContentHandler 的 characters() 方法来检索属性值。因为实体是由解析器解析的,所以我通过这样做检索了人类可读的形式。

例如,如果在我的管道中,我现在想过滤掉所有不规则 ru 动词的条目,而不是检查它们是否包含

&vr;
我必须检查它们是否包含
irregular ru verb, plain form ends with -ri
,这很麻烦,甚至可能不保证在不同版本的词典中都是正确的。

如何检索实体名称而不是实体值?

因为我找不到如何禁用实体解析,所以我尝试处理 EntityResolver 和 DTDHandler 接口描述的事件,以尝试查看将我带到哪里,但它们从未被调用过。引用this post的答案,它们仅被称为外部实体。

python xml sax
© www.soinside.com 2019 - 2024. All rights reserved.