我正在使用DOMDocument来解析HTML字符串中的所有锚标记。我需要将所有不包含某个href的锚存储到数组中。现在我能够循环遍历所有锚点并过滤掉正确的锚点,但我无法存储原始锚点。我可以通过$node->getAttribute(‘href’)
之类的操作来访问href和文本值,但是如何以原始形式获取锚点<a href="http://www.someplace.com">Some Text</a>
谢谢!这是我现在的代码:
$dom = new DOMDocument();
$dom->loadHtml(mb_convert_encoding($html, 'HTML-ENTITIES', "UTF-8"));
$anchors = array();
foreach ($dom->getElementsByTagName('a') as $node) {
if(strpos($node->getAttribute('href'), 'some value') !== true){
$anchors[] = $node; // TODO: need to store the entire original anchor tag
}
}
答案 0 :(得分:1)
试试这个:
if(strpos($node->getAttribute('href'), 'some value') !== true){
$temp = new DOMDocument();
$temp->appendChild($temp->importNode($node, true));
$node = $temp->saveHTML();
//var_dump($node);
$anchors[] = $node;
}