我正在尝试将HTML文档加载到DOM对象中。 我想要的是该页面上所有超链接的列表。 我很想知道每个链接的属性是什么以及它有什么文本。
我目前制定了一个基本的脚本来完成所有这些。除了......文本。
<?php
$html = file_get_contents('test.html');
$dom = new DOMDocument;
@$dom->loadHTML($html);
$Links = $dom->getElementsByTagName('a');
foreach ($Links as $node) {
echo 'HREF = '.$node->getAttribute('href').PHP_EOL;
echo 'Title = '.$node->getAttribute('title').PHP_EOL;
echo 'Alt = '.$node->getAttribute('alt').PHP_EOL;
echo 'Class = '.$node->getAttribute('class').PHP_EOL;
echo 'ID = '.$node->getAttribute('id').PHP_EOL;
echo 'Style = '.$node->getAttribute('style').PHP_EOL;
echo 'Link text = '.$node->Data().PHP_EOL;
}
?>
我不知道如何从对象中获取文本。
所以我想知道
<a href=somelink> **THIS TEXT IS WHAT I WANT TO SUBSTRACT**</a>
目前无效的行有:
echo 'Link text = '.$node->Data().PHP_EOL;
我希望在我正在寻找的上下文中有一个函数。
刚刚找到了解决方案!
<?php $html = file_get_contents('test.html'); $dom = new DOMDocument; @$dom->loadHTML($html); $Links = $dom->getElementsByTagName('a'); foreach ($Links as $node) { echo 'HREF = '.$node->getAttribute('href').PHP_EOL; echo 'Title = '.$node->getAttribute('title').PHP_EOL; echo 'Alt = '.$node->getAttribute('alt').PHP_EOL; echo 'Class = '.$node->getAttribute('class').PHP_EOL; echo 'ID = '.$node->getAttribute('id').PHP_EOL; echo 'Style = '.$node->getAttribute('style').PHP_EOL; echo 'Link text = '.$node->nodeValue.PHP_EOL; } ?>
此问题的解决方案是:
**echo 'Link text = '.$node->nodeValue.PHP_EOL;**
或者当我读到... node-&gt; textContent也应该工作
@PoopNoodles ...我在另一个网站上找到了解决方案。但知道还有其他选择可能会很有趣。我不知道 nodeValue 和 textContent 之间的区别。