Python元素

2024-09-30 20:22:05 发布

您现在位置:Python中文网/ 问答频道 /正文

使用ElementTree处理XML配置文件时遇到问题。我希望有一种简单的方法来查找元素的文本,而不管它在XML树中的什么位置。从文档中可以看出,我应该可以用findtext()来实现这一点,但是不管怎样,我都没有返回值。我在这里哪里做错了?每个人都告诉我XML在Python中很容易处理,但我除了麻烦什么都没有。在

configFileName = 'file.xml'

def configSet (x):
if os.path.exists(configFileName):
    tree = ET.parse(configFileName)
    root = tree.getroot()
    return root.findtext(x)

hiTemp = configSet('hiTemp')
print hiTemp

以及XML

^{pr2}$

预期结果

80

实际结果

None

Tags: 方法文档文本tree元素配置文件rootxml
2条回答

您可以使用xpath来获取所需的元素。在

return root.find('./events/airTemps/hiTemp').text

很容易理解documentation here。在

findtext需要完整的路径,但您已经给出了一个相对路径,因此找不到要查找的元素。在

您可以提供良好的xpath或修改代码

def configSet(x):
    if os.path.exists(configFileName):
        tree = ET.parse(configFileName)
        root = tree.getroot()
        for e in root.getiterator():
           t = e.findtext(x)
           if t is not None:
               return t

更新1:

如果你想把所有匹配的文本作为一个列表,那么代码就有点不同了。在

^{pr2}$

相关问题 更多 >