一尘不染

DOMXpath-获取元素的href属性和文本值

php

所以我有一个这样的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) {...}

现在,我很想知道,我如何才能将这两个查询组合在一起而只用一个查询来获得两个值(如果这甚至是可能的话?)。


阅读 960

收藏
2020-05-29

共1个答案

一尘不染

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

然后使用选中文本,使用选中nodeValue属性getAttribute('href')

除此之外,您可以将Xpath查询与Union Operator结合使用,|从而可以使用

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

也一样

2020-05-29