我有以下代码段。
import lxml.etree as ET
coding = 'utf-8'
parser = ET.XMLParser(encoding=coding, recover=True)
tree = ET.parse(filepath, parser=parser)
print tree
treeString = ET.tostring(tree)
print treeString
field = convertNodetoString(tree.find('.//Field1/field11'))
convertNodetoString
函数仅返回该字段的字符串。
XML文件是
<?xml version="1.0" encoding="UTF-8"?>
<data>
<Field0>
<field00>abc</field00>
<field01>
</field01>
</Field0>
<Field1>
<field11>def</field11>
</Field1>
</data>
我尝试使用总共5个XML文件,成功解析了3个,但是有2个错误
ElementTree not initialized, missing root
所有5个XML文件都是由同一程序生成的,除了实际值外,它们看起来很相似。
我的print tree
的输出是<lxml.etree._ElementTree object at 0x37747e8>
,而print treestring
的输出是None
。
我不明白为什么解析适用于3个文件而不适用于其他2个文件,因为它们都很相似。