Select 基于使用 XPath 或 lxml 的标记的特定子节点

Select a specific child node based on tag using XPath or lxml

我有一个与此类似的 XML 文件。我想 select 一个基于其标签的子节点

<list>
  <age>
    <John>18</John>
    <Tom>22</Tom>
    <Samer>19</Samer>
    <Mark>21</Mark>
  </age>
</list>

有没有办法select比如"Tom node"从"age node"开始?

我试过类似的东西 ageNode.xpath("/Tom") 但它不起作用。 ageNode.getchildren()[1] 有效,但每次的顺序都不一样。 所以我只能依赖标签而不是订单.

我正在使用 python 2.7 和 lxml 包。

XPath 开头的

/ 总是引用根节点。要执行相对 XPath,您需要添加 . 或完全删除 /,如评论中所述:

ageNode.xpath("./Tom")
ageNode.xpath("Tom")