У меня есть набор XML-файлов, которые мне нужно прочитать и форматировать в один файл CSV. Чтобы читать из файлов XML, я использовал упомянутое решение here.Неопределенная ошибка сущности при использовании ElementTree
Мой код выглядит следующим образом:
from os import listdir
import xml.etree.cElementTree as et
files = listdir(".../blogs/")
for i in range(len(files)):
# fname = ".../blogs/" + files[i]
f = open(".../blogs/" + files[i], 'r')
contents = f.read()
tree=et.fromstring(contents)
for el in tree.findall('post'):
post = el.text
f.close()
Это дает мне ошибку cElementTree.ParseError: undefined entity:
на линии tree=et.fromstring(contents)
. Как ни странно, когда я запускаю каждую из команд в командной строке Python (без использования for-loop), она работает отлично.
В случае, если вы хотите знать структуру XML, она выглядит так:
<Blog>
<date> some date </date>
<post> some blog post </post>
</Blog>
Так что вызывает эту ошибку, и почему это не работает из файла Python, но работает от командная строка?
Обновление: после чтения this link Я установил files[0]
и нашел, что символ '&' встречается несколько раз. Я думаю, что это может вызвать проблему. Я использовал случайный файл для чтения, когда я запускал те же команды в командной строке.
Прежде всего, следует '' .../blogs/"' быть '' ../ blogs "или' "../../ blogs /" '? – skeevey
Ну, конечно, он правильно читает файл. Я не думаю, что это проблема. – Antimony