Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath:查找包含空格的类的元素_Xpath - Fatal编程技术网

Xpath:查找包含空格的类的元素

Xpath:查找包含空格的类的元素,xpath,Xpath,所以我有这样的元素 <li class="attribute "></li> # note the space <li class="attribute"></li> 注意空格 使用xpath//li[@class=“attribute”]将获得第二个元素,但不是第一个元素。如何使用相同的xpath获取这两个元素?此xpath 1.0表达式 //li[contains(concat(' ', normalize-space(@class),

所以我有这样的元素

<li class="attribute  "></li> # note the space
<li class="attribute"></li>
  • 注意空格

  • 使用xpath
    //li[@class=“attribute”]
    将获得第二个元素,但不是第一个元素。如何使用相同的xpath获取这两个元素?

    此xpath 1.0表达式

    //li[contains(concat(' ', normalize-space(@class), ' '),
                  ' attribute ')]
    
    将选择包含
    属性
    子字符串的具有
    属性的所有
    li
    元素,无论其是否具有前导空格或尾随空格


    如果只想将
    属性
    与可能的前导空格和尾随空格(没有其他字符串值)匹配,只需使用
    normalize-space()


    我相信这个问题与这里讨论的类似:比赛似乎解决了这个问题。然而,我确实需要XPath1.0的解决方案。作为参考,类似的问题:GOLD!非常感谢。第一个表达式也可以简化为:
    //li[contains(concat('',normalize space(@class)),'attribute')]
    @Jonathan:第一个XPath实际上是为了匹配以下所有情况:
    “attribute”
    “attribute”
    “attribute second”
    “一个属性二个”
    等,但不是
    “attributeXYZ”
    ,例如。
    //li[normalize-space(@class) = 'attribute']