【发布时间】:2019-10-14 22:17:22
【问题描述】:
使用 python 和 lxml,有没有办法获取 xml 文件的 doctype 中的实体列表? 这是缩小的xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dmodule [
<!ENTITY somegraphic1 SYSTEM 'somegraphic1.cgm' NDATA cgm>
<!ENTITY somegraphic2 SYSTEM 'somegraphic2.cgm' NDATA cgm>
<!NOTATION cgm SYSTEM 'cgm'>
<!ENTITY % ISOEntities PUBLIC 'ISO 8879-1986//ENTITIES ISO Character Entities 20030531//EN//XML' 'http://www.s1000d.org/S1000D_4-1/ent/xml/ISOEntities'>
%ISOEntities;]>
<dmodule>
<graphic ident="somegraphic1"/>
<graphic ident="somegraphic2"/>
</dmodule>
我可以用 lxml 解析文件并检索 doctype 中列出的实体 (!ENTITY) 吗?
我想要最终结果为 ['somegraphic1.cgm', 'somegraphic2.cgm'] 的图形文件列表。
目前,代码(不优雅)只是打开 xml 文件并逐行读取直到<dmodule,然后拆分行以查找以“.cgm”结尾的字符串 - 呸。
如果lxml不能,请推荐另一种方式。
【问题讨论】: