【问题标题】:Error while parsing xml file in python在python中解析xml文件时出错
【发布时间】:2013-07-07 18:25:22
【问题描述】:

这是我要解析的 xml 文件。该文件没有根标签。

<data txt="some0" txt1 = "some1" txt2 = "some2" >
     <data2>
            < bank = "SBI" bank2 = "SBI2" >
     <data2>
     <data3>
            <branch = "bang1" branch = bang"2" >
     <data3>
<data>

我的脚本包含以下几行。下面可以通过解析后得到具体的数据。

data = re.findall("<data txt=.*?</data>", re.DOTALL)
tree = ElementTree.fromstringlist(data)

我无法解析这个文件,因为它没有根标签。如果文件没有标签,请帮助我如何解析??

【问题讨论】:

  • 你为什么首先使用正则表达式?只需解析 整个 文档,将选择留给 ElementTree。
  • @MartijnPieters : xml 没有根标签,因此我无法解析。

标签: python xml-parsing


【解决方案1】:

正如评论中已经指出的那样,您可以解析整个内容。如果缺少根元素是问题所在,您可以将文件的内容作为字符串获取,然后在开头和结尾添加任意根标记。

stringdata = "<myroot>%s</myroot>" % stringdata

然后解析字符串。

编辑:

回应评论。

如果你有一个字符串,你会想要 fromstring,但你几乎肯定会得到同样的错误。其他事情正在发生。试试这个...

from xml.etree import ElementTree
stringdata = "<myroot>%s</myroot>" % stringdata
tree = ElementTree.fromstring(stringdata)

然后从树中获取你需要的东西。

【讨论】:

  • @MartijnPieters:我现在将 xml 数据放在一个变量中。我尝试使用上面的两行脚本解析它,但它抛出错误“'module' object has no attribute 'fromstringlist'”?你能帮我解析这些数据吗?
猜你喜欢
  • 2015-11-18
  • 1970-01-01
  • 2015-09-18
  • 2013-06-19
  • 1970-01-01
  • 1970-01-01
  • 2013-02-09
  • 2011-10-02
相关资源
最近更新 更多