使用XPath或lxml

时间:2016-05-13 05:55:21

标签: python xml xpath lxml children

我有一个类似于此的XML文件。我想基于其标记

选择子节点
<list>
  <age>
    <John>18</John>
    <Tom>22</Tom>
    <Samer>19</Samer>
    <Mark>21</Mark>
  </age>
</list>

有没有办法选择“Tom node”,例如从“age node”开始?

我尝试了类似ageNode.xpath("/Tom")的东西,但它没有用。 ageNode.getchildren()[1]有效,但每次订单都是不同的。 所以我只能依靠标签NOT订购

我正在使用python 2.7和lxml包。

1 个答案:

答案 0 :(得分:1)

XPath开头的

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

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