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
Dom 当查询到达带有XPath的特定类时,如何停止查询?_Dom_Xpath - Fatal编程技术网

Dom 当查询到达带有XPath的特定类时,如何停止查询?

Dom 当查询到达带有XPath的特定类时,如何停止查询?,dom,xpath,Dom,Xpath,假设我有以下几点: <div class="data"> <h2 class="entry-contentH2">Preparation</h2> <h2>Airplanes</h2> <ul> <li><strong>3 large</strong> wings</li> <li><strong>

假设我有以下几点:

<div class="data">
    <h2 class="entry-contentH2">Preparation</h2>
    <h2>Airplanes</h2>
    <ul>
        <li><strong>3 large</strong> wings</li>
        <li><strong>2</strong>doors</li>
    </ul>
    <h2>Car</h2>
    <ul>
        <li><strong>4</strong> doors</li>
        <li><strong>1 cup</strong> holder</li>
    </ul>
    <h2 class="stopHeader">Execution</h2>
    <h2>Motorcycles</h2>
    <ul>
        <li>Easy to learn</li>
    </ul>
</div>

尝试以下XPath以获得所需的输出:

//h2[.="Preparation"]/following-sibling::h2[./following-sibling::h2[.="Execution"]]/text()
这应该返回
“准备”
“执行”

之间的每个标题(
h2
)的文本内容。请尝试此xpath

//h2[text()='Preparation']/following::h2[not(@class='stopHeader')]/text()

这似乎奏效了。您是否得到错误的输出?出于某种原因,它正在查询所有的p标记,包括stopHeader之后的标记。如果要将
[@class=“stopHeader”]
替换为
[@class=“stopHeader”]
,该怎么办?到目前为止,XPath不区分大小写。您希望的输出是什么<代码>“飞机”,
“汽车”
?谢谢Andersson,它可以工作,但我会理解这里发生了什么,因为我尝试过的都不起作用。你好,你尝试过这个答案吗?提供您的反馈。
//h2[text()='Preparation']/following::h2[not(@class='stopHeader')]/text()