Разбор разного структурированного xml - PullRequest
0 голосов
/ 27 января 2020

В настоящее время я пытался использовать xml .dom.minidom.parser и xml .etree.ElementTree для этого файла с другой структурой таблицы.

Всякий раз, когда я пытаюсь использовать эти команды, я получаю сообщение об ошибке «ExpatError: неправильно сформирован (неверный токен): строка 300606, столбец 37»

Файл, с которым я работаю, - это omia. xml .zip файл из https://omia.org/download/ . Что я могу сделать для обработки такого отформатированного файла?

Я пытался использовать beautifulsoup с xml и l xml, но, похоже, у меня там тоже есть некоторые проблемы. (Я установил l xml, но он не распознается)

1 Ответ

0 голосов
/ 28 января 2020

Похоже, проблема кодирования содержимого элемента. Вот что сообщает 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>
                                               ^

Возможно, вы сможете отфильтровать недопустимые символы, но я не уверен, как это повлияет на ваши ожидаемые результаты.

...