从DOM文档节点,您如何检索原始HTML源?

时间:2015-06-16 14:14:12

标签: php html domdocument

将DOMDocument对象作为参数给出,如下所示:

class Comparison {

    public function __construct($domDocument=null){
        $anchors = $domDocument->getElementsByTagName('a');
        if($anchors && 0 < count($anchors)){
            foreach($anchors as $anchor){
                $original = ''; // Not sure how to get this
                $ordered = $this->rearrangeAttributes($anchor);
                $difference = $this->diff($original,$ordered);
                echo 'Original Source: '.$original."\n";
                echo 'Ordered Source: '.$ordered."\n";
                echo 'Difference: '.$difference."\n\n";
            }
        }
    }

}

如何获得$ original指示的原始HTML字符串?

我目前的做法是从这里开始:http://php.net/manual/en/class.domnode.php

尝试获取有问题的节点的父节点,获取innerHTML,但是考虑到转换中原始源代码发生了一定程度的更改,它看起来不像是一种强大的方法。有没有办法以更有效的方式做到这一点?我也可以传入原始HTML,但是如果有一个已知的解决方案,我想避免兔子洞。

更新 如果您想要父源(已清理)且原始无关紧要,那么Marc B的链接文件非常有用:How to return outer html of DOMDocument?

但是如果您想要原始来源,可以尝试获取行号http://php.net/manual/en/domnode.getlineno.php,但是,目前尚不清楚这是清理后的源代码还是原始源代码。洞察欢迎!

0 个答案:

没有答案