【问题标题】:Parsing different structured xml解析不同的结构化xml
【发布时间】:2020-01-27 19:15:39
【问题描述】:
目前我已经尝试对这个具有不同表结构的文件使用 xml.dom.minidom.parser 和 xml.etree.ElementTree。
每当我尝试使用这些命令时,都会收到一条错误消息“ExpatError: not well-formed (invalid token): line 300606, column 37”
我正在使用的文件是来自https://omia.org/download/ 的omia.xml.zip 文件。
如何处理这种格式化文件?
我试图将beautifulsoup 与xml 和lxml 一起使用,但似乎我也有一些问题。 (我 pip install lxml,但它没有被识别)
【问题讨论】:
标签:
python
xml
parsing
lxml
【解决方案1】:
这看起来像是元素内容的编码问题。以下是 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>
^
您或许可以过滤无效字符,但我不确定这会如何影响您的预期结果。