/** * Returns an ezcsseStyle object for given XML string * * @param string $source * @return ezcsseStyle */ static function createFromXML($source) { $newObj = new ezcsseStyle(); if ($source) { $dom = new DOMDOcument(); $success = $dom->loadXML($source); $root = $dom->documentElement; if ($root->hasAttributes()) { foreach ($root->attributes as $attr) { $newObj->setAttribute($attr->name, $attr->value); } } foreach ($root->childNodes as $node) { if ($node->nodeType == XML_ELEMENT_NODE && $node->nodeName == 'rule') { $newObj->addRule(ezcsseRule::createFromXML($node)); } elseif ($node->nodeType == XML_ELEMENT_NODE) { $newObj->setAttribute($node->nodeName, $node->nodeValue); } } } return $newObj; }