使用DOMDocument获取HTML中A元素的href属性和标签名称
问题描述:
我正在尝试使用DOMDocument从HTML获取href
属性(URL)和标签名称.
我有以下代码,但我一起列出了参数:
I'm trying to get href
attribute (url) and tag name from HTML using DOMDocument.
I have the following code, but I listing parameters together:
$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 />";
}/**/
我们如何突然宣布结果?
How do we suddenly announcing results?
$ url-$ nazev
$url - $nazev
答
使用Xpath:
选择任何li
元素
//li
li
元素内的任何a
元素...
Any a
element inside a li
element ...
//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"
}