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,我想举个例子 以下是页面的外观: <a class="aclass"> <div class="divclass"></div> <div id="innerclass"> <span class="spanclass">Hello</span> </div> </a> <a

我想举个例子

以下是页面的外观:

<a class="aclass">
    <div class="divclass"></div>
    <div id="innerclass">
        <span class="spanclass">Hello</span>
    </div>
</a>

<a class="aclass">
    <div class="divclass"></div>
    <div id="innerclass">
        <span class="spanclass">Pick Delivery Location</span>
    </div>
</a>
我希望能够选择而不必选择直接子级(本例中为div),如下所示:

//a[@class='aclass'][div/span[text() = 'Hello']]
//a[@class='aclass'][//span[text() = 'Hello']]
但是,第二个查找所有带有类“aclass”的锚定标记,而不是带有span和“Hello”文本的锚定标记


我希望我的问题措辞清楚。如有必要,请随意编辑。

在您的尝试中,
/
返回到文档的根目录-实际上您是在说“给我文档中任何地方都有
span
a
”,这就是为什么您都可以得到它们的原因

您需要的是
子体

//a[@class='aclass' and descendant::span[text() = 'Hello']]
注意:我已将条件与
合并,但两个单独的条件也会起作用