0

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

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

4

1 回答 1

1

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

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

然后解析字符串。

编辑:

回应评论。

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

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

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

于 2013-07-07T18:32:28.367 回答