parse($text); if (isset(static::$afterParse)) { $xml = call_user_func(static::$afterParse, $xml); } return $xml; } /** * Render an intermediate representation using a singleton instance of the bundled Renderer * * @param string $xml Intermediate representation * @param array $params Stylesheet parameters * @return string Rendered result */ public static function render($xml, array $params = []) { $renderer = static::getCachedRenderer(); if (!empty($params)) { $renderer->setParameters($params); } if (isset(static::$beforeRender)) { $xml = call_user_func(static::$beforeRender, $xml); } $output = $renderer->render($xml); if (isset(static::$afterRender)) { $output = call_user_func(static::$afterRender, $output); } return $output; } /** * Reset the cached parser and renderer * * @return void */ public static function reset() { static::$parser = null; static::$renderer = null; } /** * Transform an intermediate representation back to its original form * * @param string $xml Intermediate representation * @return string Original text */ public static function unparse($xml) { if (isset(static::$beforeUnparse)) { $xml = call_user_func(static::$beforeUnparse, $xml); } $text = Unparser::unparse($xml); if (isset(static::$afterUnparse)) { $text = call_user_func(static::$afterUnparse, $text); } return $text; } }