2012-07-01 3 views
2

Я новичок в python и очень нуждаюсь в помощи! У меня есть ряд ошибок, которые я не могу понять. Я использую python 2.7 на Mac. Вот список ошибок:Разбор XML-исключения

Traceback (most recent call last): 
    File "minihiveosc.py", line 378, in <module> 
    swhive = SWMiniHiveOSC(options.host, options.hport, options.ip, options.port, options.minibees, options.serial, options.baudrate, options.config, [1,options.minibees], options.verbose, options.apimode) 
    File "minihiveosc.py", line 280, in __init__ 
    self.hive.load_from_file(config) 
    File "/Users/Puffin/Documents/python/pydon/pydon/pydonhive.py", line 396, in load_from_file 
    hiveconf = cfgfile.read_file(filename) 
    File "/Users/Puffin/Documents/python/pydon/pydon/minibeexml.py", line 116, in read_file 
    tree = ET.parse(filename) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1183, in parse 
    tree.parse(source, parser) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 656, in parse 
    parser.feed(data) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1643, in feed 
    self._raiseerror(v) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/xml/etree/ElementTree.py", line 1507, in _raiseerror 
    raise err 
xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 164, column 8 

Любой шанс, который может мне помочь? Спасибо!

+0

Пожалуйста, оставляйте только одну проблему за вопрос. :-) –

+0

Здесь есть только одна проблема; трассировка сообщает вам, где и как Python добрался до него. –

+0

ОК, я новичок на Python, поэтому не знаю, как это сделать. – RexTheRunt

ответ

5

Что вы вывесили в вашем вопросе называется «Traceback», и это показывает только один ошибку:

xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 164, column 8

Всех строк перед ней показать, как питон попал туда; в файле minihiveosc.py, в строке 378 был выполнен некоторый код (показан в трассировке), который затем привел к строке 280 того же файла, где было вызвано что-то еще и т. д.

Каждый раз, когда Python вызывает функцию, текущий состояние помещается в стек, чтобы освободить место для следующего контекста, и когда возникает исключение, python может показать вам этот стек, чтобы помочь вам диагностировать вашу проблему.

В этом случае вы пытаетесь передать XML-документ в XML синтаксический анализатор, который имеет ошибку в нем; к тому времени, когда парсер попадает в строку 164, столбец 8, он нашел то, чего он не ожидал. Вам нужно будет проверить этот документ, чтобы узнать, в чем проблема, это будет вокруг этой области.

+0

Хорошо сказано так +1 от меня –

+0

Спасибо - теперь я понимаю, почему вы говорите, что есть только одна проблема. :) – RexTheRunt

0

Это одна ошибка с трассировкой стека. Создание объекта SWMiniHiveOSC вызвало ошибку при выполнении метода load_from_file (config). Имя файла или содержимое файла находится в разделе «options.config». Файл конфигурации XML не является корректным, в логе 164, колонке 8 в этом файле имеется недопустимый токен. Проблема заключается в XML-файле, а не в коде python.

+0

Спасибо - это странно. В файле было 164 строки, я не знаю, что было не так с последней строкой ... Я удалил множество файлов в файле, который мне не нужен, снова сохранил файл и, похоже, работает! – RexTheRunt

+1

Вы можете проверить, что не так с XML-файлом в Visual Studio или в Интернете, например. http://www.validome.org/xml/validate/ (отметьте только «хорошо сформулированную форму») –

+0

Да, я сделал это, но это не помогло мне, к сожалению. http://stackoverflow.com/questions/11280232/can-not-find-declaration-of-element-xml – RexTheRunt