使用 Xpath 和 domDocument 获取与给定单词匹配的链接进行显示时遇到问题。一切似乎都进展顺利for($i=0;$i<$documentLinks->length;$i++){
用来。
谁能帮我解决我哪里出错了?
$html = '<ol>';
$html .= ' <li id="stuff-123"> some copy here </li>';
$html .= ' <li id="stuff-456"> some copy here <a href="http://domain.com">domain</a> </li>';
$html .= ' <li id="stuff-789"> some copy here </li>';
$html .= '</ol>';
$dom = new DOMDocument();
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$result = $xpath->query('//ol/li[starts-with(@id, "stuff")]');
foreach($result as $e){
$documentLinks = $e->getElementsByTagName('a')->item(0)->nodeValue;
for($i=0;$i<$documentLinks->length;$i++){
$documentLink = $documentLinks->item($i);
if(preg_match("/domain/i", $documentLink->getAttribute("href"))){
echo $documentLink->getAttribute("href") . "\n";
}
}
}
该行:$documentLinks = $e->getElementsByTagName('a')->item(0)->nodeValue;
大概应该是:$documentLinks = $e->getElementsByTagName('a');
$e->getElementsByTagName('a')
返回 $e 的所有标签为<a ...>
意思就是
$e->getElementsByTagName('a')->item(0);
返回 $e 下的第一个链接
and $documentLinks = $e->getElementsByTagName('a')->item(0)->nodeValue;
正在返回第一个链接的文本。
http://php.net/manual/en/domdocument.getelementsbytagname.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)