#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, и исправить его, чтобы это больше не повторилось.