Python - 解析包含多个xml部分的文件

时间:2017-04-18 14:00:39

标签: python xml

我正在尝试处理具有以下结构的文件:

import xml.etree.ElementTree as ET
tree = ET.parse('test.nml')
root = tree.getroot()
print(root.iter('djn-subject'))
for element_1 in root.iter('djn-subject'):
    for element_2 in root.iter('c'):
        print(element_2.text)

即。该文件包含许多较小的“xml”部分。

我正在尝试以下代码:

  File "<string>", line unknown
ParseError: junk after document element: line 195, column 0

给出错误

count(*)

知道我怎么能摆脱这个错误?看来我的XML文件有多个根,有没有办法绕过根周围的一切或其他方式来处理这个问题?谢谢。

1 个答案:

答案 0 :(得分:0)

XML etree只需要一个根节点。如果你有多个根,它就不会解析它而你会得到一个像你看到的那样的错误,因为它把它看作是形成不良的xml。您需要编辑XML文件,以便您尝试检索的所有元素都在一个根节点下,或者您必须将每个根节点分成多个文件并单独解析它们(这不是效率最高,但这取决于您的命名空间和xsd是相同还是不同)。