python - 使用 XPath 或 lxml 根据标签选择特定的子节点

标签 python xml xpath lxml children

我有一个与此类似的 XML 文件。我想根据它的标签选择一个子节点

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

有没有办法从“年龄节点”开始选择“汤姆节点”?

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

我正在使用 python 2.7 和 lxml 包。

最佳答案

XPath 开头的

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

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

关于python - 使用 XPath 或 lxml 根据标签选择特定的子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37202182/

相关文章:

python - 在 Python 中使用 assert 的例子?

python - 使用 MNIST 实现逻辑回归 - 不收敛?

python - 使用 xpath 获取当前元素内的元素

php - php:Xpath Ant 唯一ID

python - 检查方程对于一组特定的变量是否是线性的

java - Kotlin从xml转换为具有样式的html

c# - 使用 Linq 读取 XML 文档

java - 使用 XPATH 读取 XML 中的重复 block 并以特定格式进行格式化

XSLT:检查列表中是否存在值

php - 如何在循环中将php的值传递给python