使用DOMDocument获取HTML中的A元素的href属性和标记名称

时间:2014-06-02 07:48:28

标签: php parsing domdocument

我正在尝试使用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

1 个答案:

答案 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"
}