从python中的标记名称中查找xml文本内容

时间:2016-12-11 18:30:47

标签: 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>

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

现在我最初尝试使用下面的代码打印所有内容,但这只会在有随机标记抛出索引的时候才会生效。那么,有没有办法简单地从标签中获取文本?或者是否绝对需要知道数组索引?

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

for child in root:
    print(child[2].text)

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

2 个答案:

答案 0 :(得分:3)

由于您的问题听起来似乎是想要获取特定密钥,因此您可以简单地使用invalidateIntrinsicContentSize()来获取具有该名称的XML密钥的内容

layoutSubviews()

答案 1 :(得分:1)

import xml.etree.ElementTree as ET
tree = ET.parse('./all_foods.xml')
my_text = [item.text for item in tree.iter()]

这将为您提供所需的文本列表。如果您想要一些特定的文字,可以使用

my_tags = [item.text for item in tree.iter() if item.text == "title1"]