如何在phyton ElementTree中使用xpaths查找元素?

时间:2019-11-21 13:17:48

标签: python xml xpath elementtree

我有一个简单的xml文件,并且正在使用'xml.etree.ElementTree'库,但是在尝试通过xpath表达式查找节点时无法检索节点。

这是xml


<?xml version="1.0" encoding="utf-8"?>
<myEmails>
    <note id="1">
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
    </note>
    <note id="2">
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
        <body>Don't forget me this weekend!</body>
    </note>
    <note id="3">
        <to>Toves</to>
        <from>Janis</from>
        <heading>Reminders</heading>
        <body>Don't forget me this weekend!</body>
    </note>
</myEmails>

我希望能够通过id查找节点,然后遍历每个标签以验证其内容

我已经尝试过了:

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

e = tree.findall("./myEmails/note[@id='1']")
for i in e:
    print (i.text)

e = root.findall("./myEmails/note[@id='1']")
for i in e:
    print (i.text)

无论哪种方式,我都不打印任何内容,并且在打印表达式时

print (tree.findall("./myEmails/note[@id='1']"))
print (root.findall("./myEmails/note[@id='1']"))

我只得到一个空白的方括号[]

我想念什么?使用python在XML文件中查找信息的正确方法是什么?

非常感谢

0 个答案:

没有答案