CSS 没有特定子元素的选择器或 XPath

CSS selector or XPath for elements without specific child

示例如下:

<ul>
    <li>list item one</li>
    <li>list item two
        <ol>
            <li test="video">Nested item one</li>
            <li test="audio">nested item two</li>
        </ol>
        <ol>
            <li test="video">Nested item three</li>
        </ol>
    </li>
    <li>list item three</li>
</ul>

如果我只想 select <ol> 没有子元素 <li test="audio"> 的元素,请问 CSS select 或者 XPath 是什么?

这个 XPath,

//ol[not(li/@test="audio")]

将 select 没有 li child 且 test 属性值为 "audio" 的所有 ol 元素。


根据 OP follow-up 评论更新添加 ol 元素还必须具有 li child 的要求test "video"...

的属性值

这个 XPath,

//ol[not(li/@test="audio") and li/@test="video"]

将select所有ol个元素

  • li child test 属性值为 "audio",并且
  • do 有一个 li child test 属性值为 "video"