Prado\Web\UI\WebControls\TXmlTransform::render PHP Method

render() public method

Performs XSL transformation and render the output.
public render ( $writer )
    public function render($writer)
    {
        if (($document = $this->getSourceXmlDocument()) === null) {
            $htmlWriter = Prado::createComponent($this->GetResponse()->getHtmlWriterType(), new TTextWriter());
            parent::render($htmlWriter);
            $document = new DOMDocument();
            $document->loadXML($htmlWriter->flush());
        }
        $stylesheet = $this->getTransformXmlDocument();
        // Perform XSL transformation
        $xslt = new XSLTProcessor();
        $xslt->importStyleSheet($stylesheet);
        // Check for parameters
        $parameters = $this->getParameters();
        foreach ($parameters as $name => $value) {
            $xslt->setParameter('', $name, $value);
        }
        $output = $xslt->transformToXML($document);
        // Write output
        $writer->write($output);
    }

Usage Example

Example #1
0
 public function testRenderWithDocumentPathAndTransformPath()
 {
     $expected = "<b>Hello World!</b>\n";
     $transform = new TXmlTransform();
     $transform->setDocumentPath($this->documentPath);
     $transform->setTransformPath($this->transformPath);
     $textWriter = new TTextWriter();
     $htmlWriter = new THtmlWriter($textWriter);
     $transform->render($htmlWriter);
     $actual = $textWriter->flush();
     self::assertEquals($expected, $actual);
 }