簡體   English   中英

如何使用PHP DOM獲取超鏈接?

[英]How to get the hyperlink with PHP DOM?

我有一個簡單的HTML構造:

<table>
  <tr>
    <td class="myStyle">
      <a href="URLa">Name of URL a</a>
    </td>
  </tr>
  <tr>
    <td class="myStyle">
      <a href="URLb">Name of URL b</a>
    </td>
  </tr>
</table>

現在我想找到PHP DOM如何獲取此URL以及可能的名稱。

while($table = $tables->item($i++))
{
    $class_node = $table->attributes->getNamedItem('class');

    if($class_node)
    {
        if ($table->attributes->getNamedItem('class')->value == "myStyle") {
            $links = $tables->item($i)->getElementsByTagName('a');
            foreach ($links as $link) {
                echo "<br>" . $link->nodeName;
            }
            //echo "Class is : " . $table->attributes->getNamedItem('class')->value . PHP_EOL;
        }
    }
}

到目前為止,我可以打印出具有“myStyle”類的每一行。 但我無法從那里獲取任何值或href。

我知道XPath更方便,但我想首先嘗試使用DOM。 在XPath中,我在遍歷DOM時知道我的位置。 但是這里有DOM,我想我不在我想要的循環中的那個位置。

繼續這樣..

$dom = new DOMDocument;
$dom->loadHTML($html);
foreach ($dom->getElementsByTagName('td') as $tag) {
    if ($tag->getAttribute('class') === 'myStyle') {
        foreach ($tag->getElementsByTagName('a') as $atag) {
            echo $atag->getAttribute('href');
        }

    }
}

OUTPUT :

URLa
URLb

演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM