我正在构建一个内部读者风格的PHP应用程序,它从我们的页面中提取文本,然后对其进行各种操作。大多数HTML页面上的文本都是无序的,因此应用程序必须能够在不使用类名或其他导航锚的情况下获取文本,因为没有。只有文本标题与锚点相关。
我想从给定的起始节点(标题)中获取文本,然后在我到达img标签时停止(可能存在也可能不存在,如果没有,那么这将意味着应该获取所有文本)。我目前只成功使用XPath获取没有图像的文本。
以下是HTML示例
<b>Some title</b>
<br/> Important text
<br/> More important text
<p> More text I which should be fetched</p>
<p><img src="foo.jpg"/></p>
<p> Unimportant text, don't want it!</p>
这是我目前使用的//*[text()="Some title"]/following::text()
的XPath查询。
以上确实提取了相关文本,但是如果它存在,我希望它停止在img标记处。知道怎么做吗?
答案 0 :(得分:0)
获取没有图像的所有文本节点。
//*[text()="Some title"]/following::text()[not(preceding::img)]
如果需要,您可以轻松地进一步限制停止的图像。