PHP DOMDocument锚标签

时间:2014-07-15 22:21:09

标签: php domdocument

我正在使用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
            }
        }

1 个答案:

答案 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; 
}