Xpath php获取链接

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很新.

edo*_*ian 5

您正在寻找"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完成