【问题标题】:XPath with multiple conditions具有多个条件的 XPath
【发布时间】:2012-05-02 03:24:56
【问题描述】:

我可以使用什么 XPath 来选择具有指定名称属性的任何类别以及具有指定值的任何子节点作者。

我尝试了以下路径的不同变体,但没有成功:

//quotes/category[@name='Sport' and author="James Small"]

XML:

<?xml version="1.0" encoding="utf-8"?>
<quotes>
  <category name="Sport">
   <author>James Small<quote date="09/02/1985">Quote One</quote><quote             date="11/02/1925">Quote nine</quote></author>
  </category>
   <category name="Music">
   <author>Stephen Swann
 <quote date="04/08/1972">Quote eleven</quote></author>
  </category>
  </quotes>

【问题讨论】:

    标签: xml xslt xpath


    【解决方案1】:

    试试:
    //category[@name='Sport' and ./author/text()='James Small']

    【讨论】:

    • 对于关注者,错误消息“Expected ], but found: &&”的意思是“使用 and 关键字而不是 &&”(如本答案所述)
    【解决方案2】:

    使用

    /category[@name='Sport' and author/text()[1]='James Small']
    

    或使用:

    /category[@name='Sport' and author[starts-with(.,'James Small')]]
    

    尽量避免使用// 伪运算符是一个很好的规则,因为它的评估通常会很慢。

    还有:

    ./somename
    

    相当于:

    somename
    

    所以推荐使用后者。

    【讨论】:

      【解决方案3】:

      问题不清楚,但据我所知,您需要选择一个具有 name 属性的类别,并且应该有指定值的子作者,如果我穿坏了,请纠正我

      这是一个 xpath

      //category[@name='Required value'][./author[contains(.,'Required value')]]
      e.g
      //category[@name='Sport'][./author[contains(.,'James Small')]]
      

      【讨论】:

        【解决方案4】:

        您可以在 xpath 中使用 and 或 or 应用多个条件

        //input[@class='_2zrpKA _1dBPDZ' and @type='text']
        
        //input[@class='_2zrpKA _1dBPDZ' or @type='text']
        

        【讨论】:

          【解决方案5】:

          在这里,我们也可以这样做:

          //category [@name='category name']/author[contains(text(),'authorname')]

          //category [@name='category name']//author[contains(text(),'authorname')]
          

          要详细了解XPATH,请访问-selenium xpath in detail

          【讨论】:

            猜你喜欢
            • 2022-01-03
            • 1970-01-01
            • 2015-07-25
            • 1970-01-01
            • 2018-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多