php – DOMXpath – 获取一个元素的href属性和文本值[转]

admin6年前IT技术2229

原文https://stackoverflow.com/questions/6820429/domxpath-get-href-attribute-and-text-value-of-an-a-element
       http://www.voidcn.com/article/p-cjeefole-btv.html 

 

所以我有一个这样的 HTML字符串:

 

 

<td class="name">   <a href="/blah/somename23123">Some Name</a></td><td class="name">   <a href="/blah/somename28787">Some Name2</a></td>

使用XPath我可以使用此Xpath查询获取href属性的值:

 

$domXpath = new \DOMXPath($this->domPage); $hrefs = $domXpath->query("//td[@class='name']/a/@href"); foreach($hrefs as $href) {...}

并且获得文本值更容易,如下所示:

 

// Xpath auto. strips any html tags so we are  // left with clean text value of a element $domXpath = new \DOMXPath($this->domPage); $names = $domXpath->query("//td[@class='name']/"); foreach($names as $name) {...}

现在我很想知道,如何组合这两个查询来获取两个值只有一个查询(如果这样的话甚至可以吗?).

 

 

 

//td[@class='name']/a

然后用nodeValue和getAttribute(‘href’)的属性提取文本.

除此之外,您可以将Xpath查询与Union Operator |组合所以你可以使用

 

//td[@class='name']/a/@href|//td[@class='name']

 

相关文章

docker在centos7容器中安装宝塔重启端口映射失败,容器重启端口映射失败.

 问题的出现大家都以为是centos容器重启之后,导致端口映射失败,其实不是的,我之前也误解成是这个原因,硬刚了4天,才发现了问题所在真正的原因:centos容器重启之后,宝塔面板没有能启动...

Android Studio bulid出现乱码的原因与解决方法

 报错是乱码没有设置,不知道是什么原因造成的,点击这个 “放大镜” 或 “双击Shift” 打开这个对话框,并在搜索框内输入 Edit Cus...

提取ewebeditor 的图片地址

<Script Language=JavaScript>function doChange(objText, objDrop){ if (!objDrop) return;&nb...

win server 2008安装IIS的支持ACCESS的方法

1.设置windows/temp权限  添加user可读写权限2.设置程序池兼容32位3.设置ASP父路径为true...

亚马逊“傲娇”!拒绝与PayPal合作

一个平台如果没有自己的支付系统,是一个平台最大的悲剧,ebay这几年不行了,其他原因不好说,但是他长期使用paypal的支付接口,就说明是一大败笔,长期泄露自己的会员交易数据!!!! 亚马逊...

openclaw安装教程

http://127.0.0.1:18789,在设置里填 API。重新运行孵化命令:在终端输入 openclaw hatchWindows10 中国大陆环境 从零安装【原版 OpenClaw】+配置N...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。