如何从PHP DOMElement中检索信息?

时间:2014-11-27 09:37:51

标签: php html css dom

我正在处理一个获取style.css文件全部内容的函数,并且只返回当前查看页面所需的CSS规则(它也将被缓存,因此该函数仅在页面已更改)。

我的问题在于解析DOM(我之前从未使用过PHP DOM)。我有以下函数,但$ element->标记名返回NULL。我还想检查元素"类"属性,但我被困在这里。

function get_rules($html) {
    $arr = array();
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    foreach($dom->getElementsByTagName('*') as $element ){
        $arr[sizeof($arr)] = $element->tagname;
    }
    return array_unique($arr);
}

我该怎么办?如何从HTML中获取所有DOM元素标记名称和类?

1 个答案:

答案 0 :(得分:1)

因为tagname应该是未定义的索引,因为它应该是tagName(驼峰)。

function get_rules($html) {

    $arr = array();
    $dom = new DOMDocument();
    $dom->loadHTML($html);
    foreach($dom->getElementsByTagName('*') as $element ){
        $e = array();
        $e['tagName'] = $element->tagName; // tagName not tagname
        // get all elements attributes
        foreach($element->attributes as $attr) {
            $attrs = array();
            $attrs['name'] = $attr->nodeName;
            $attrs['value'] = $attr->nodeValue;
            $e['attributes'][] = $attrs;
        }
        $arr[] = $e;
    }
    return $arr;
}

Simple Output