1 回答
TA贡献1808条经验 获得超4个赞
您的输入文档格式不正确,缺少 a,并且一个文档未正确关闭。固定输入文档后,工作路径表达式为></pdiv
XPath 表达式
//div[@class='content']//text()[not(ancestor::div/@class[contains(., 'code')])][normalize-space()]
它选择所有文本节点,但前提是它们没有具有值包含“代码”的属性的祖先元素,并且所选的文本节点不能仅包含空格。divclass
输出
单个结果由以下部分分隔:------
title
-----------------------
text
-----------------------
text2
-----------------------
text3
-----------------------
text4
-----------------------
text5
-----------------------
text6
-----------------------
text7
-----------------------
text8
更新
我试过了你的答案。它的工作原理,但我仍然需要来自img标签的来源。我怎样才能得到它?
也可以选择元素的属性,但这会使 Xpath 表达式更加复杂。您只需添加另一行 PHP 来计算单独的路径表达式,例如:sourceimg
//div[@class='entry-content']/p/img/@source
更新 2
虽然我绝对不建议使用此表达式(因为它会混淆您的代码),但下面介绍如何使用联合运算符将两个表达式组合成一个表达式:
//div[@class='entry-content']//text()[not(ancestor::div/@class[contains(., 'code')])][normalize-space()] | //div[@class='entry-content']//p/img/@src
- 1 回答
- 0 关注
- 83 浏览
添加回答
举报