2013-04-28 2 views
0

Я пытаюсь разобрать некоторые XML, однако я получаю сообщение об ошибке. Осмотрев немного, я подозреваю, что это связано с каким-то особым символом в исходном тексте, и (recover = True) следует поместить в мою парсерную линию. Однако я не знаю точное место для этого. Может ли кто-нибудь посмотреть?XML-парсер, recover = True?

for name in newlist: 
tree = ET.parse(loc + name)  

root = tree.getroot()   

for post in root.findall('post'): 

    text = post.text     

    text = text.strip()      

    posts.append(text) 

Ошибки я получаю:

ParseError: not well-formed (invalid token): line 103, column 225 
+0

Вы смешиваете закладки и пробелы в своем коде; пожалуйста, исправьте вопрос, чтобы код был правильно отступом. Смешивание вкладок и пробелов следует избегать и в исходном коде. –

ответ

0

им не знаком с питоном, но у меня были проблемы, как это с помощью C#. Возможно, это связано с тем, что xml не отформатирован правильно. Обычно первая строка файла XML будет содержать что-то вроде

<?xml version="1.0" encoding="UTF-8" ?> 

версии и кодирования важно, так как это говорит анализатору какие символы разрешены. UTF-8 по умолчанию, но иногда файл xml содержит символы не ascii, что приводит к тому, что это сходит с ума. Изменение кодировки в UTF-16 иногда исправляет это.

Удача

+0

Проблема в том, что я имею дело с 20 000 xml-файлами, вручную фиксируя когда-либо xml-файлы, потребуется несколько дней. – Shifu

+0

не уверен, что сказать. Я попытался бы исправить один из них и посмотреть, работает ли он. Если это так, то, по крайней мере, вы знаете ответ и где идти с ним. В моем случае я смог переопределить форматирование в коде, потому что файлы xml, где я не сгенерировал. Они пришли от третьего лица. –

+0

как я уже сказал, я не программист на питоне, поэтому я не могу помочь вам с этой частью. Просто пытаюсь поделиться своим опытом с подобной проблемой в C# –

Смежные вопросы