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,我正在尝试定位类为“foo”的元素 这是它找到的代码: <div id="foo1"> <div id = "foo2"> <div class = "foo-err"> </div> </div> </div> 路径正在返回div class=“foo err”元素contains()是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素” 如果您想要精确匹配,请尝试 [@class

我正在尝试定位类为“foo”的元素

这是它找到的代码:

<div id="foo1">
<div id = "foo2">
<div class = "foo-err">
</div>
</div>
</div>

路径正在返回div class=“foo err”元素

contains()
是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素”

如果您想要精确匹配,请尝试

[@class='foo']
contains()
是子字符串匹配。它的基本意思是“如果'foo'在class属性中的任何地方都,则匹配元素”

如果您想要精确匹配,请尝试

[@class='foo']

如果需要在类列表中匹配
foo
,而不是
foo err
,则需要一个更复杂的构造:
[包含(concat(“”,@class,,'foo')]
,它将在完整的类字符串中查找由空格包围的foo,该字符串也由空格包围。因此
'foobaz bar'
->
'foobar'
->包含
'foobaz'
,但
'foobaz bar'
->不包含
'foo'
如果需要在类列表中匹配
foo
,而不是
foo err
,则需要更复杂的构造:
'contains(concat>)('',@class','','foo')]
,它将在同样由空格包围的完整类字符串中查找由空格包围的foo。因此
'foo-bar'
->
'foo-bar'
->包含
'foo'
,但是
'foobaz-bar'
->不包含
'foo'

xpath会是:/div/div/div/div吗[@class='foo']这个故事的寓意是:不要假设你可以仅从函数名猜出函数的作用。@MichaelKay实际上,这个故事的寓意是“函数名可能准确地描述了它的作用”。:-)是的,一旦发现它的作用,我就认为啊,当然……包含xpath,那么它应该是:/div/div/div[@class='foo']这个故事的寓意是:不要假设你可以仅从函数名猜出函数的作用。@MichaelKay实际上,这个故事的寓意是“函数名可能准确地描述了它的作用。”:-)是的,一旦发现它的作用,我想啊,当然……包含了
[@class='foo']