使用Python从XML读取/提取数据

时间:2019-12-12 20:56:51

标签: python xml

我正在尝试使用xml.etree.ElementTree从Python读取/提取XML数据。 不幸的是,到目前为止,我还没有找到方法。很有可能是因为我不了解xml的工作原理。

想法是将DocumentId号写为列表

这是我的XML文件:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegisterSearch TotalResults="4">
  <SearchResults>
    <Document DocumentId="1348828088501913376">
      <DocumentNumber>001</DocumentNumber>
    </Document>
    <Document DocumentId="1348828088501881434">
      <DocumentNumber>001</DocumentNumber>
    </Document>
    <Document DocumentId="1348828088539553420">
      <DocumentNumber>010</DocumentNumber>
    </Document>
    <Document DocumentId="1348828088539570694">
      <DocumentNumber>010</DocumentNumber>
    </Document>
  </SearchResults>
</RegisterSearch>

这是我的Python代码:

#!/usr/bin/python2

import xml.etree.ElementTree as ET
tree = ET.parse('documents.xml')
root = tree.getroot()

for elem in root:
    if(elem.tag=='Document'):
        print elem.get('DocumentId')

这是我试图实现的目标:

1348828088501913376
1348828088501881434
1348828088539553420
1348828088539570694

实际上,代码什么也没带回来...

预先感谢您的建议。

1 个答案:

答案 0 :(得分:0)

遍历您感兴趣的标签:

for elem in root.iter(tag='Document'):
    print(elem.get('DocumentId'))

您的原始解决方案可以与

一起使用
for elem in root.iter():
    ...

v3.8:https://docs.python.org/3/library/xml.etree.elementtree.html#finding-interesting-elements

v2.7:https://docs.python.org/2.7/library/xml.etree.elementtree.html#finding-interesting-elements