我有一个特定的 html,如下所示,我观察到在所有情况下都会出现一个特定的 h2 节点。
<div id='myDiv'>
<..other elements..>
<h2>Locator</h2>
<h3>Header 1 </h3>
<p>Paragraph 1.1</p>
<h3>Header 2 </h3>
<p>Paragraph 2.1</p>
<p>Paragraph 2.2.</p>
<p>Paragraph 2.3.</p>
<h4> test header 4</h4>
</div>
我想要特定节点之后的所有标记,html 格式如下。
正如你所看到的,我可以通过应用 xpath //div[@id='myDiv']/h2[contains(.,"Locator")]
来定位 h2 标签,但问题是找到所有元素在 h2 标签后面的 div 内。(我不确定这个 h2 标签后面可以有什么类型的标签)。为了更清楚,选择以下节点的 xpath 是什么
<h3>Header 1 </h3>
<p>Paragraph 1.1</p>
<h3>Header 2 </h3>
<p>Paragraph 2.1</p>
<p>Paragraph 2.2.</p>
<p>Paragraph 2.3.</p>
<h4> test header 4</h4>
最佳答案
*[preceding-sibling::h2]
表示 h2
之后的所有元素。因此,在选择器中添加 contains 后,它会像这样
//div[@id='myDiv']/*[preceding-sibling::h2[contains(text(),'Locator')]]
参见Demo Here 。单击“测试”按钮您将得到结果
关于html - Xpath 查找特定节点之后的所有元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40881309/