我正在尝试使用DOMDocument从HTML获取href
属性(url)和标记名称。
我有以下代码,但我将参数列在一起:
$searchNodeA = $dom->getElementsByTagName('li');
$searchNodeHref = $dom->getElementsByTagName('a');
foreach($searchNodeA as $searchNode)
{
$url = $searchNode->getAttribute('href');
$acko = $searchNode->getElementsByTagName('a');
$nazev = $acko->item(0)->nodeValue;
echo "$nazev<br />";
}/**/
foreach($searchNodeHref as $searchNode)
{
$url = $searchNode->getAttribute('href');
echo "$url<br />";
}/**/
我们如何突然宣布结果?
$ url - $ nazev
答案 0 :(得分:1)
使用Xpath:
选择任何li
元素
//li
a
元素中的任何li
元素......
//li//a
... href
属性
//li//a[@href]
加载,评估和迭代:
$dom = new DOMDocument();
$dom->loadHtml('<ul><li><a href="#link">caption</a></li></ul>');
$xpath = new DOMXpath($dom);
foreach ($xpath->evaluate('//li//a[@href]') as $a) {
var_dump(
[
'text' => $a->nodeValue,
'href' => $a->getAttribute('href')
]
);
}
输出:
array(2) {
["text"]=>
string(7) "caption"
["href"]=>
string(5) "#link"
}