public static function parse(DOMNode $node) { if ($node->nodeName == self::getNodeName()) { if (($code = HTTPCode::getByCode(XMLUtils::getChildByName($node, "code")->nodeValue)) != null) { return new Error(FileUtils::getAbsolutePath(XMLUtils::getChildByName($node, "file")->nodeValue, VIEWS_FOLDER), $code); } throw new Exception("Unknown HTTP Code '" . XMLUtils::getChildByName($node, "code")->nodeValue . "'"); } throw new Exception("Unexpected node '" . $node->nodeName . "', expected '" . self::getNodeName() . "'"); }
function parse_file_into_array($file) { return XMLUtils::parse_into_array(file_get_contents($file)); }
public static function load($xmlfile, $prefix) { if (is_file($xmlfile)) { $dom = new DOMDocument(); $dom->load($xmlfile); if ($dom->validate()) { $root = $dom->documentElement; // Preliminary path modifications foreach ($root->getElementsByTagName("include") as $include) { $include->nodeValue = FileUtils::resolveRelativePath(FileUtils::getFileParent($xmlfile), $include->nodeValue); } // Reading attributes $actions = array(); foreach (XMLUtils::getChildrenByName($root, "action") as $child) { $actions[] = AbstractAction::parse($child); } $subsites = array(); foreach (XMLUtils::getChildrenByName($root, "subsite") as $child) { $subsites[] = Subsite::parse($child); } $targets = array(); foreach (XMLUtils::getChildrenByName($root, "target") as $child) { $targets[] = Target::parse($child); } return new Subsite($subsites, $targets, $actions, $prefix); } else { throw new Exception("Document validation failed for '" . $xmlfile . "'"); } } else { throw new Exception("Not a file '" . $xmlfile . "'"); } }