Dis*_*sco 2 php xpath domxpath
我正在使用此示例从网站获取链接:
http://www.merchantos.com/makebeta/php/scraping-links-with-php/
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
var_dump($href);
$url = $href->getAttribute('href');
echo "<br />Link stored: $url";
}
Run Code Online (Sandbox Code Playgroud)
效果很好; 获得所有链接; 但我无法得到链接的实际"标题"; 例如,如果我有:
<a href="www.google.com">Google</a>
Run Code Online (Sandbox Code Playgroud)
我希望能够获取"谷歌"一词.
我很少迷路并且对xpath很新.
您正在寻找"a"节点内Textnode的"nodeValue".你可以用它来获得这个价值
$title = $href->firstChild->nodeValue;
Run Code Online (Sandbox Code Playgroud)
完整的工作示例:
<?php
$dom = DomDocument::loadHTML("<html><body><a href='www.test.de'>DONE</a></body></html>");
$xpath = new DOMXPath($dom);
$hrefs = $xpath->evaluate("/html/body//a");
for ($i = 0; $i < $hrefs->length; $i++) {
$href = $hrefs->item($i);
$url = $href->getAttribute('href');
$title = $href->firstChild->nodeValue;
echo "<br />Link stored: $url $title";
}
Run Code Online (Sandbox Code Playgroud)
打印:
链接存储:www.test.de完成
| 归档时间: |
|
| 查看次数: |
2765 次 |
| 最近记录: |