如何忽略 XPATH 中的元素
How to Ignore element in XPATH
我想要 select 所有 a
不在 <div id="not-take-inside">....</div>
元素内的标签。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
</div>
<div id="not-take-inside">
<ul>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
</ul>
</div>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
</div>
</div>
</body>
</html>
我想要 select 所有 a
不在 <div id="not-take-inside">....</div>
元素内的标签。
我试了 XPATH 好像 //a[parent::*[not(@id='not-take-inside')]]
不行。
简单使用//a[not(ancestor::*[@id='not-take-inside'])]
:)
你只需要select所有a
没有@id
的ancestor::
属性节点,内容为not-take-inside
:
//a[not(ancestor::*/@id='not-take-inside')]
不需要两个谓词。
我想要 select 所有 a
不在 <div id="not-take-inside">....</div>
元素内的标签。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
</div>
<div id="not-take-inside">
<ul>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
<li><a href="#">TEXT</a></li>
</ul>
</div>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
<div><a href="#">TEXT</a></div>
</div>
</div>
</body>
</html>
我想要 select 所有 a
不在 <div id="not-take-inside">....</div>
元素内的标签。
我试了 XPATH 好像 //a[parent::*[not(@id='not-take-inside')]]
不行。
简单使用//a[not(ancestor::*[@id='not-take-inside'])]
:)
你只需要select所有a
没有@id
的ancestor::
属性节点,内容为not-take-inside
:
//a[not(ancestor::*/@id='not-take-inside')]
不需要两个谓词。