Example #1
0
 public static function parse(DOMNode $node)
 {
     if ($node->nodeName == self::getNodeName()) {
         $prefix = XMLUtils::getChildByName($node, "prefix") != null ? XMLUtils::getChildByName($node, "prefix")->nodeValue : null;
         if (($include = XMLUtils::getChildByName($node, "include")) != null) {
             Controller::logDebug("Prefix for subsite {0}: {1}", $include->nodeValue, $prefix);
             return Subsite::load($include->nodeValue, $prefix);
         } else {
             $subsites = array();
             foreach (XMLUtils::getChildrenByName($node, "subsite") as $child) {
                 $subsites[] = Subsite::parse($child);
             }
             $targets = array();
             foreach (XMLUtils::getChildrenByName($node, "target") as $child) {
                 $targets[] = Target::parse($child);
             }
         }
         return new Subsite(XMLUtils::getAttributeByName($node, "name")->value, $targets, $prefix);
     }
     throw new Exception("Unexpected node '" . $node->nodeName . "', expected '" . self::getNodeName() . "'");
 }