首页 > 解决方案 > XPath 如何单独获取帖子

问题描述

如何分别使用 xpath 获取文本?

我尝试的代码只得到 1 的所有信息而不是单独的:

期望:

  1. 标题1

    描述1

  2. 标题2

    描述2

得到:

  1. 标题1 标题2

    描述 1 描述 2

HTML:

<div>
<p><strong>Title1</strong></p>
<ul>
<li>Desc1</li>
</ul>
<p><strong>Title2</strong></p>
<ul>
<li>Desc2</li>
</ul>
</div>

标签: xpath

解决方案


不太清楚您的“所需”示例用标记为 1 和 2 的对表示什么,但如果您只是尝试选择每个标题文本,然后选择其紧随其后的 ul/li 文本,则可以使用如下表达式:

//div/p/(
  ./normalize-space(string()), 
  ./(following-sibling::ul[1])/normalize-space(string()))

对于每个p它选择 as 字符串的整个文本内容,p然后选择紧随其后的ul兄弟p并选择其整个字符串内容。这可以很容易地改进为只选择p/strong内容(而不是所有的p)和类似的ul/li


推荐阅读