获取 href 属性:基于 DOM 的解决方案
当试图从 HTML 中提取 href 属性时,正则表达式可能会遇到限制。对于 href 属性没有放在 标签前面的场景,更可靠的做法是利用 DOM API。
使用 DOM 抓取 href 属性
考虑以下 PHP 代码:
$dom = new DOMDocument; $dom->loadHTML($html); foreach ($dom->getElementsByTagName('a') as $node) { echo $dom->saveHtml($node), PHP_EOL; }
此代码将 HTML 内容加载到DOMDocument 对象,使用 getElementsByTagName 迭代所有 元素,并输出每个元素的外层 HTML。
访问节点值和属性
从DOM节点,可以使用以下方法:
用于属性查询的 XPath
XPath也可以直接查询href属性:
$xpath = new DOMXPath($dom); $nodes = $xpath->query('//a/@href'); foreach($nodes as $href) { echo $href->nodeValue; // Echo current attribute value $href->nodeValue = 'new value'; // Set new attribute value $href->parentNode->removeAttribute('href'); // Remove attribute }
通过利用 DOM API 的功能,您可以有效地解析 HTML 内容并操作标签,包括提取和修改其 href 属性。
以上是如何使用 DOM API 高效地从 HTML 中提取 href 属性?的详细内容。更多信息请关注PHP中文网其他相关文章!