Skip to main content
 首页 » 编程设计

python之基于多个相邻值的 XPATH

2025年05月04日8Renyi-Fan

正确执行以下操作的语法是什么?

title_node.find("EST/EST_Version 
                       [Master_Type_HD_SD='HD'] AND [Version_Type='Standard'] 
                     /Vendor_ID").text 

这是 xml 的外观:

<EST_Version> 
  <Vendor_ID>1660023-200455</Vendor_ID> 
  <Version_Type>Standard</Version_Type> 
  <Master_Type_HD_SD>SD</Master_Type_HD_SD> 
</EST_Version> 

这基本上就是我正在尝试做的(尽管以下内容不正确)

title_nod.find("EST/EST_Version[Master_Type_HD_SD='SD']/../ 
                   EST_Version[Version_Type='Directors Cut']/Vendor_ID").text 

请您参考如下方法:

对于多个谓词过滤器(方括号),不要将它们与和组合在一起。只需按顺序使用它们。第一个谓词过滤器应用于集合,然后应用下一个谓词过滤器:

EST/EST_Version[Master_Type_HD_SD='HD'][Version_Type='Standard']/Vendor_ID 

在单个谓词过滤器中,您可以将 and 用于多个条件:

EST/EST_Version[Master_Type_HD_SD='HD' and Version_Type='Standard']/Vendor_ID