XPATH基于多个相邻值

时间:2012-08-16 23:58:06

标签: python xml xpath

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

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

1 个答案:

答案 0 :(得分:1)

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

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