我正在处理一个获取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元素标记名称和类?
答案 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;
}