解析不同结构的xml

2024-04-27 00:58:19 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我已经尝试对这个具有不同表结构的文件使用xml.dom.minidom.parser和xml.etree.ElementTree

每当我尝试使用这些命令时,都会收到一条错误消息“ExpatError:格式不正确(无效令牌):第300606行,第37列”

我正在使用的文件是来自https://omia.org/download/的omia.xml.zip文件。 如何处理这种格式化文件

我试图将beautifulsoup与xml和lxml结合使用,但似乎我在这方面也遇到了一些问题。(I pip安装lxml,但未被识别)


Tags: 文件命令parser消息格式错误xml结构
1条回答
网友
1楼 · 发布于 2024-04-27 00:58:19

这看起来像是元素内容的编码问题。以下是xmllint报告的内容:

$ unzip -p ~/Downloads/omia.xml.zip | xmllint  noout -
-:300606: parser error : PCDATA invalid Char value 2
        <field name="journal">Bulletin et Memoires de la Societe Centrale de Medic
                                           ^
-:300606: parser error : PCDATA invalid Char value 2
        <field name="journal">Bulletin et Memoires de la Societe Centrale de Medic
                                                              ^
-:300606: parser error : PCDATA invalid Char value 2
        <field name="journal">Bulletin et Memoires de la Societe Centrale de Medic
                                                                 ^
-:300606: parser error : PCDATA invalid Char value 2
        <field name="journal">Bulletin et Memoires de la Societe Centrale de Medic
                                                                                 ^
-:322053: parser error : Opening and ending tag mismatch: row line 322042 and field
        <field name="doi"></field>
                                  ^
-:322054: parser error : Opening and ending tag mismatch: table_data line 19 and row
    </row>
          ^
-:328921: parser error : Opening and ending tag mismatch: database line 3 and table_data
    </table_data>
                 ^
-:1389753: parser error : xmlSAX2Characters: huge text node
        <field name="gene_id">388093963</field>
                                               ^

您可以过滤无效字符,但我不确定这将如何影响您的预期结果

相关问题 更多 >