AMP_Style_Sanitizer::collect_styles_recursive PHP Method

collect_styles_recursive() private method

private collect_styles_recursive ( $node )
    private function collect_styles_recursive($node)
    {
        if ($node->nodeType !== XML_ELEMENT_NODE) {
            return;
        }
        if ($node->hasAttributes() && $node instanceof DOMElement) {
            $style = $node->getAttribute('style');
            $class = $node->getAttribute('class');
            if ($style) {
                $style = $this->process_style($style);
                if (!empty($style)) {
                    $class_name = $this->generate_class_name($style);
                    $new_class = trim($class . ' ' . $class_name);
                    $node->setAttribute('class', $new_class);
                    $this->styles['.' . $class_name] = $style;
                }
                $node->removeAttribute('style');
            }
        }
        $length = $node->childNodes->length;
        for ($i = $length - 1; $i >= 0; $i--) {
            $child_node = $node->childNodes->item($i);
            $this->collect_styles_recursive($child_node);
        }
    }