forena-8.x-1.x-dev/src/FrxPlugin/Renderer/FrxXML.php
src/FrxPlugin/Renderer/FrxXML.php
<?php /** * @file FrxXML * Just render the XML source data. * Look at the FrxRender class to see a full list of * properties that can be used here. */ namespace Drupal\forena\FrxPlugin\Renderer; use Drupal\forena\Context\DataContext; use Drupal\forena\FrxAPI; /** * XML Data Renderer * * @FrxRenderer(id = "FrxXML") */ class FrxXML extends RendererBase { use FrxAPI; public function render() { $output = ''; $node = $this->reportNode; $options = $this->mergedAttributes(); if (isset($options['context'])) { $xml = $this->getDataContext($options['context']); } else { $xml = $this->currentDataContext(); } if (is_array($xml)) $xml = DataContext::arrayToXml($xml); if ($xml && is_callable(array($xml, 'asXML'))) { $dom = dom_import_simplexml($xml); $dom->ownerDocument->formatOutput = TRUE; $dom->ownerDocument->preserveWhiteSpace = TRUE; $output = $dom->ownerDocument->saveXML($dom->ownerDocument->documentElement); } if ($this->report->format != 'xml') $output = '<pre>' . htmlspecialchars($output) . '</pre>'; return $output; } }