在python中从标签名称查找xml文本内容

Ron*_*nan 6 python xml

我确信以前曾有人问过此类问题,但我自己似乎无法找到正确的词语来找到答案......

例如,我有一个 XML 文件

<document>
   <page>
      <title>title1</title>
      <id>1</id>
      <text>this is text1</text>
   </page>
   <page>
      <title>title2</title>
      <id>2</id>
      <text>this is text2</text>
   </page>
   <page>
      <title>title3</title>
      <id>3</id>
      <comment>random comment</comment>
      <text>this is text3</text>
   </page>
</document>
Run Code Online (Sandbox Code Playgroud)

我正在尝试找到一种方法,理想情况下将标签中的每个值存储到数组中。

现在,我最初尝试用下面的代码打印所有内容,但这只有效,直到出现随机标签,导致索引失效。那么,有没有一种方法可以简单地从标签中获取文本呢?或者是否绝对需要知道数组索引?

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

for child in root:
    print(child[2].text)
Run Code Online (Sandbox Code Playgroud)

如果这是常见问题,我很抱歉,我真的无法在网上找到任何答案。

yam*_*elo 4

由于从您的问题来看,您似乎正在寻找特定的密钥,因此您可以简单地使用find(<key_name>).text该名称来获取具有该名称的 XML 密钥的内容

import xml.etree.ElementTree as ET
tree = ET.parse('./all_foods.xml')
root = tree.getroot()
for x in root:
    print x.find("title").text

>>>
   title1
   title2
   title3
Run Code Online (Sandbox Code Playgroud)