使用 python 解析 XML 中的同名标签

Parsing same-named tags in XML using python

可能有一个简单的解决方案,但我就是找不到,所以如果有人能帮助我,我会很高兴。我用 python3.7 我正在尝试解析 "date",但仅限于 application-reference

                <bibliographic-data>
                <publication-reference>
                    <document-id document-id-type="docdb">
                        <country>EP</country>
                        <doc-number>1001100</doc-number>
                        <kind>A1</kind>
                        <date>20000517</date>
                    </document-id>
                    <document-id document-id-type="epodoc">
                        <doc-number>EP1000000</doc-number>
                        <date>20000517</date>
                    </document-id>

      <application-reference doc-id="17397285">
                    <document-id document-id-type="docdb">
                        <country>EP</country>
                        <doc-number>99203729</doc-number>
                        <kind>A</kind>
                    </document-id>
                    <document-id document-id-type="epodoc">
                        <doc-number>EP199903729</doc-number>
                        <date>19991108</date>
                    </document-id>
                    <document-id document-id-type="original">
                        <doc-number>993729</doc-number>
                    </document-id>
                </application-reference>

有可能许多其他日期出现在 application-reference 的前面,所以我不能简单地打印第 4 个日期。

我尝试了简单的 xmldom 或 xml.etree 查询,但 none 有效

由于我不确定如何访问它,我尝试了

root = ElementTree.fromstring(js).getroot()

for appl in root.findall("application-reference"):
    ElementTree.dump(appl)

然后我卡住了

结果应该是19991108。

尝试使用 lxml 和 xpath:

bibli = """[your xml above; make sure it's properly formatted!]"""

from lxml import etree

root = lxml.etree.fromstring(bibli)
print(root.xpath('//application-reference//date/text()'))

输出:

['19991108']