在python中解析xml文件时出错

时间:2013-07-07 18:25:23

标签: python xml-parsing

这是我试图解析的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)

我无法解析此文件,因为它没有root标记。请帮我解析文件是否没有标签?

1 个答案:

答案 0 :(得分:1)

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

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

然后解析字符串。

修改

回应评论。

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

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

然后从树上得到你需要的东西。