使用 XPath 捕获部分文本
Catching partial part of text with XPath
我在为以下 H
寻找 XPath 时遇到了一些困难
<div>
<p> pppppppp
<span class="rollover-people">
<a class="rollover-people-link">pppppp</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>xxxx</a>
<a>xxxxx</a>
</span>
</span>
</span>
</span>pppppppp
</p>ppppppppp
<div>
所以基本上我需要 <p>
到 <span class="rollover-people-block">
内的所有内容。换句话说,我想要 <p>
而不是 <span class="rollover-people-block">
。这可能吗?请记住,<p>
在页面中重复了不止一次。
这就是您正在寻找的闭包。
//p//text()[not(ancestor::span[@class='rollover-people-block'])]
这将获取 p 下的所有文本节点,不包括 span class='rollover-people-block'.
下的文本节点
样本html:
<!DOCTYPE html>
<html>
<body>
<div>
<p> A
<span class="rollover-people">
<a class="rollover-people-link">B</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>c</a>
<a>d</a>
</span>
</span>
</span>
</span>E
</p>f
<p> G
<span class="rollover-people">
<a class="rollover-people-link">H</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>i</a>
<a>j</a>
</span>
</span>
</span>
</span>K
</p>l
<div>
</body>
</html>
xpath 输出:
我在为以下 H
寻找 XPath 时遇到了一些困难<div>
<p> pppppppp
<span class="rollover-people">
<a class="rollover-people-link">pppppp</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>xxxx</a>
<a>xxxxx</a>
</span>
</span>
</span>
</span>pppppppp
</p>ppppppppp
<div>
所以基本上我需要 <p>
到 <span class="rollover-people-block">
内的所有内容。换句话说,我想要 <p>
而不是 <span class="rollover-people-block">
。这可能吗?请记住,<p>
在页面中重复了不止一次。
这就是您正在寻找的闭包。
//p//text()[not(ancestor::span[@class='rollover-people-block'])]
这将获取 p 下的所有文本节点,不包括 span class='rollover-people-block'.
下的文本节点样本html:
<!DOCTYPE html>
<html>
<body>
<div>
<p> A
<span class="rollover-people">
<a class="rollover-people-link">B</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>c</a>
<a>d</a>
</span>
</span>
</span>
</span>E
</p>f
<p> G
<span class="rollover-people">
<a class="rollover-people-link">H</a>
<span class="rollover-people-block">
<span class="rollover-block">
<span>
<img src="/someAddress" width="100" height="100" alt>
<a>i</a>
<a>j</a>
</span>
</span>
</span>
</span>K
</p>l
<div>
</body>
</html>
xpath 输出: