Php 使用DOMDocument获取HTML中元素的href atribute和标记名

Php 使用DOMDocument获取HTML中元素的href atribute和标记名,php,parsing,domdocument,Php,Parsing,Domdocument,我正在尝试使用DOMDocument从HTML获取href属性(url)和标记名。 我有以下代码,但我同时列出了参数: $searchNodeA = $dom->getElementsByTagName('li'); $searchNodeHref = $dom->getElementsByTagName('a'); foreach($searchNodeA as $searchNode) { $url = $searchNode->getAttribute('hre

我正在尝试使用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 />";
}/**/
$searchNodeA=$dom->getElementsByTagName('li');
$searchNodeHref=$dom->getElementsByTagName('a');
foreach($searchNodeA作为$searchNode)
{
$url=$searchNode->getAttribute('href');
$acko=$searchNode->getElementsByTagName('a');
$nazev=$acko->item(0)->nodeValue;
回声“$nazev
”; }/**/ foreach($searchNodeRef作为$searchNode) { $url=$searchNode->getAttribute('href'); 回显“$url
”; }/**/
我们如何突然宣布结果

$url-$nazev

使用Xpath:

选择任何
li
元素

//li

li
元素中的任何
a
元素

//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')
    ]
  );
}

看起来您想嵌套那些
foreach
es?是的,但我将在1x$nazev的末尾列出一个URL,使用
简单html解析器完成,它使用了一种简单的类似于
jQuery
的方法。
array(2) {
  ["text"]=>
  string(7) "caption"
  ["href"]=>
  string(5) "#link"
}