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")
我有一个与此类似的 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,您需要添加 .
或完全删除 /
,如评论中所述:
ageNode.xpath("./Tom")
ageNode.xpath("Tom")