首页 > 解决方案 > 连续元素的 CSS 或 XPath 选择器

问题描述

是否有用于连续元素的 CSS 或 XPath 选择器?我想测试一些 HTML 以确保标签的<h1>序列<h6>。我想确保没有丢失的标题。例如,这将是有效的

<h1>Header1</h1>
<h2>Header2</h2>
<h3>Header3</h3>

但这将是无效的

<h1>Header1</h1>
<h3>Header3</h3>
<h4>Header4</h4>

因为<h2>标签不见了。

问题是,我也想将此 HTML 视为有效,但还没有找到可以选择<h2>标签的选择器:

<h1>Header1</h1>
<div>
  <h2>Header2</h2>
</div>
<h3>Header3</h3>

我与兄弟姐妹一起尝试过,h1~h2~h3但这在嵌套情况下不起作用。我尝试了相邻的选择器h1+h2+h3,但这也不起作用。似乎只有子选择器,以及在同一父级别上运行的东西。我也尝试使用 XPath 来解决这个问题,但似乎存在与 CSS 类似的限制。

那么在 CSS 或 XPath 中是否存在“元素在代码中某处的另一个元素之后”类型的选择器?

标签: htmlcssxpath

解决方案


在 XPath 中,您可以使用following轴来选择以下可能不是同级的节点:

//h1/following::h2/following::h3/following::h4/following::h5/following::h6

推荐阅读