Ошибка синтаксического анализа: объявление XML или текста не в начале сущности: строка 2, столбец 0″ с использованием дерева элементов Python

#python #xml

Вопрос:

Мне нужно перебрать более 100 xml-файлов, не получая этой ошибки: «Ошибка синтаксического анализа: XML или текстовое объявление не в начале сущности: строка 2, столбец 0». Как я могу это сделать? На данный момент я сделал:

 import xml.etree.ElementTree as ET import os  file_1 = ' '.join([x for x in os.listdir() if x.endswith('xml')]) utterances = []  for filename in file_1.split(): with open(filename, 'r', encoding="utf-8") as content:  tree = ET.parse(content)  root = tree.getroot()  for y in root.iter('UNIT'):  utterances.append(y.text)  

Комментарии:

1. делать ET.fromstring(content)

2. Если я сделаю дерево = ET.из строки(содержимое) Я получаю ошибку: ошибка типа: требуется байтообразный объект, а не ‘_io.TextIOWrapper’

3. делай ET.fromstring(content.read()) или ET.parse(filename)

4. К сожалению, это приводит меня к той же ошибке. Кажется, мне нужно удалить пробелы в каком-то месте какого-то xml, который у меня есть. В любом случае, я ценю вашу помощь.

5. Что вы хотите сделать с недопустимыми XML-файлами? Просто игнорировать их? Что бы вы ни делали, вам нужно посмотреть на процесс, который сгенерировал плохой XML, и исправить его, чтобы это больше не повторилось.