【问题标题】:Parsing XML exception解析 XML 异常
【发布时间】:2012-07-02 02:48:14
【问题描述】:

我是 python 新手,非常需要帮助!我有许多我无法弄清楚的错误。我在 Mac 上使用 python 2.7。以下是错误列表:

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

有人可以帮助我吗? 谢谢!

【问题讨论】:

  • 每个问题只能发布一个问题。 :-)
  • 这里只有一个问题;回溯会告诉你 Python 在哪里以及如何到达它。

标签: python xml parsing module elementtree


【解决方案1】:

这是堆栈跟踪的一个错误。 执行 load_from_file(config) 方法时,创建 SWMiniHiveOSC 对象导致错误。文件名或文件内容在“options.config”中。您的 XML 配置文件格式不正确,此文件中第 164 行第 8 列的令牌无效。问题在于 XML 文件,而不是 python 代码。

【讨论】:

  • 谢谢 - 这很奇怪。该文件有 164 行,我不知道最后一行出了什么问题...我在文件中删除了很多我不需要的配置,再次保存文件,它似乎可以正常工作!
  • 您可以在 Visual Studio 或在线检查 XML 文件有什么问题,例如validome.org/xml/validate(选中“仅格式良好”)
  • 是的,我这样做了,但不幸的是这对我没有帮助。 stackoverflow.com/questions/11280232/…
【解决方案2】:

您在问题中发布的内容称为“Traceback”,它仅显示一个错误:

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

它之前的所有行都显示了python是如何到达那里的;在文件 minihiveosc.py 中,在第 378 行执行了一些代码(在回溯中显示),然后导致同一文件的第 280 行调用了其他代码,等等。

每次 Python 调用一个函数时,当前状态都会被压入堆栈,以便为下一个上下文腾出空间,当异常发生时,python 可以向您显示此堆栈以帮助您诊断问题

在这种情况下,您尝试将 XML 文档提供给其中有错误的 XML 解析器;当解析器到达第 164 行第 8 列时,它发现了一些它没有预料到的东西。您需要检查该文档以了解问题所在,它会在该区域附近。

【讨论】:

    【解决方案3】:

    这只是因为您的 XML 文件在第 8 行格式不正确。当解析器尝试读取该行时,它会引发该错误。查看您的文档以了解它是什么。

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      相关资源
      最近更新 更多