/** * get product reviews from feefo * * @return array */ public function getProductsReview() { $check = true; $reviews = array(); $feefoDir = BP . DIRECTORY_SEPARATOR . 'app' . DIRECTORY_SEPARATOR . 'code' . DIRECTORY_SEPARATOR . 'Dotdigitalgroup' . DIRECTORY_SEPARATOR . 'Email' . DIRECTORY_SEPARATOR . 'view' . DIRECTORY_SEPARATOR . 'frontend' . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR . 'feefo'; $logon = $this->helper->getFeefoLogon(); $limit = $this->helper->getFeefoReviewsPerProduct(); $products = $this->getQuoteProducts(); foreach ($products as $sku => $name) { $url = "http://www.feefo.com/feefo/xmlfeed.jsp?logon=" . $logon . "&limit=" . $limit . "&vendorref=" . $sku . "&mode=productonly"; $doc = new \DOMDocument(); $xsl = new \XSLTProcessor(); if ($check) { $doc->load($feefoDir . DIRECTORY_SEPARATOR . "feedback.xsl"); } else { $doc->load($feefoDir . DIRECTORY_SEPARATOR . "feedback-no-th.xsl"); } $xsl->importStyleSheet($doc); $doc->loadXML(file_get_contents($url)); $productReview = $xsl->transformToXML($doc); if (strpos($productReview, '<td') !== false) { $reviews[$name] = $xsl->transformToXML($doc); } $check = false; } return $reviews; }
public function exec() { $proc = new \XSLTProcessor; $proc->importStylesheet($this->_stylesheet); $content = $proc->transformToXML($this->_datafile); return $content; }
/** * display block * * @param array $blockinfo a blockinfo structure * @return output the rendered bock */ public function display($blockinfo) { if (!SecurityUtil::checkPermission('xsltblock::', "{$blockinfo['title']}::", ACCESS_OVERVIEW)) { return; } // Get our block vars $vars = BlockUtil::varsFromContent($blockinfo['content']); if ((!isset($vars['docurl']) || !isset($vars['styleurl'])) && (!isset($vars['doccontents']) || !isset($vars['stylecontents']))) { return; } // create new objects $doc = new \DOMDocument(); $xsl = new \XSLTProcessor(); // load stylesheet if (isset($vars['styleurl']) && !empty($vars['styleurl'])) { $doc->load($vars['styleurl']); } else { $doc->loadXML($vars['stylecontents']); } $xsl->importStyleSheet($doc); // load xml source if (isset($vars['docurl']) && !empty($vars['docurl'])) { $doc->load($vars['docurl']); } else { $doc->loadXML($vars['doccontents']); } // apply stylesheet and return output $blockinfo['content'] = $xsl->transformToXML($doc); return BlockUtil::themeBlock($blockinfo); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $environment = $input->getOption('env'); try { $transformer = $input->getOption('xsl'); $xsl = new \DOMDocument(); $xsl->load($transformer); $xslt = new \XSLTProcessor(); $xslt->registerPHPFunctions(); $xslt->importStylesheet($xsl); $files = $input->getOption('file'); foreach ($files as $file) { $output->writeln('Transforming file: ' . $file); $doc = new \DOMDocument(); $doc->load($file); $xml = $xslt->transformToXml($doc); $xmlobj = new \SimpleXMLElement($xml); $xmlobj->asXML('output.xml'); } } catch (\Exception $ex) { $exception = new OutputFormatterStyle('red'); $output->getFormatter()->setStyle('exception', $exception); $output->writeln("\n\n"); $output->writeln('<exception>[Exception in: ' . get_class($this) . ']</exception>'); $output->writeln('<exception>Exception: ' . get_class($ex) . ' with message: ' . $ex->getMessage() . '</exception>'); $output->writeln('<exception>Stack Trace:</exception>'); $output->writeln('<exception>' . $ex->getTraceAsString() . '</exception>'); exit(1); } exit(0); }
public function process($page) { global $_PLUGIN; //echoall($page); // call plugins // $pageXml = olivxml_create($page,"page"); if ($page) { $pageXml = OLIVPlugin::call(new simpleXmlElement($page), "render"); //------------------------------------------------------------------------------ // convert page xml to html if (sessionfile_exists(system::OLIV_TEMPLATE_PATH() . "post.xslt")) { $postStylesheet = sessionxml_load_file(system::OLIV_TEMPLATE_PATH() . "post.xslt"); } else { OLIVError::fire("postprocessor.php::process - post.xslt file not found"); die; } $htmlProcessor = new XSLTProcessor(); $htmlProcessor->importStylesheet($postStylesheet); $pageString = $htmlProcessor->transformToXML($pageXml); //echoall($pageXml->asXML()); //------------------------------------------------------------------------------ // run markup parser $pageString = $this->markup($pageString); return $pageString; } }
/** * Обрабатывает данные. * @param string $data XML-строка */ public function process($data) { $errorHandler = new \WebConstructionSet\Xml\LibxmlErrorHandler(); $xml = new \DOMDocument(); if (!$xml->loadXML($data)) { throw new \ErrorException('Document parse failed. ' . $errorHandler->getErrorString(), null, null, __FILE__, __LINE__); } $xsl = new \DOMDocument(); if ($this->xslString) { if (!$xsl->loadXML($this->xslString)) { throw new \ErrorException('XSL stylesheet load/parse failed. ' . $errorHandler->getErrorString(), null, null, __FILE__, __LINE__); } } else { $xslPath = $this->getXslStylesheetPath($xml); if (!$xslPath) { throw new \ErrorException('XSL stylesheet path is not found.', null, null, __FILE__, __LINE__); } if (!$xsl->load($xslPath)) { throw new \ErrorException('XSL stylesheet load/parse failed. ' . $errorHandler->getErrorString(), null, null, __FILE__, __LINE__); } } $xslt = new \XSLTProcessor(); if (!$xslt->importStylesheet($xsl)) { throw new \ErrorException('Import XSL stylesheet failed. ' . $errorHandler->getErrorString(), null, null, __FILE__, __LINE__); } $this->resultDoc = $xslt->transformToDoc($xml); if (!$this->resultDoc) { throw new \ErrorException('XSLT transform failed. ' . $errorHandler->getErrorString(), null, null, __FILE__, __LINE__); } // no return }
public function go() { $fopcfg = dirname(__FILE__) . '/fop_config.xml'; $tmppdf = tempnam('/tmp', 'FOP'); if (!extension_loaded('java')) { $tmpxml = tempnam('/tmp', 'FOP'); $tmpxsl = tempnam('/tmp', 'FOP'); file_put_contents($tmpxml, $this->xml); file_put_contents($tmpxsl, $this->xsl); exec("fop -xml {$tmpxml} -xsl {$tmpxsl} -pdf {$tmppdf} 2>&1"); @unlink($tmpxml); @unlink($tmpxsl); } else { $xml = new DOMDocument(); $xml->loadXML($this->xml); $xsl = new DOMDocument(); $xsl->loadXML($this->xsl); $proc = new XSLTProcessor(); $proc->importStyleSheet($xsl); $java_library_path = 'file:/usr/share/fop/lib/fop.jar;file:/usr/share/fop/lib/FOPWrapper.jar'; try { java_require($java_library_path); $j_fwc = new JavaClass("FOPWrapper"); $j_fw = $j_fwc->getInstance($fopcfg); $j_fw->run($proc->transformToXML($xml), $tmppdf); } catch (JavaException $ex) { $trace = new Java("java.io.ByteArrayOutputStream"); $ex->printStackTrace(new Java("java.io.PrintStream", $trace)); print "java stack trace: {$trace}\n"; } } return $tmppdf; }
public function saveXML($me = true) { $xml = new XMLDom(); if (!self::$xsl instanceof \XSLTProcessor) { self::$xsl = new \XSLTProcessor(); self::$xsl->importStylesheet(XMLDom::loadXMLString('<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" method="xml"/> <xsl:template match="node()|@*" priority="-4"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates /> </xsl:copy> </xsl:template> <xsl:template match="/" priority="-4"> <xsl:apply-templates /> </xsl:template> </xsl:stylesheet>')); } if ($me) { $xml->appendChild($xml->importNode($this, true)); return self::$xsl->transformToXml($xml); } else { foreach ($this->childNodes as $node) { $xml->appendChild($xml->importNode($node, true)); } } return self::$xsl->transformToXml($xml); }
public static function toPO($xmlstr, XSLTProcessor $xslt = NULL) { if ($xslt != NULL) { //$doc = DOMDocument::loadXML($xmlstr); $doc = new DOMDocument(); $doc->loadXML($xmlstr, LIBXML_NOCDATA); // TEST: hay 252 $xpath = new DOMXPath($doc); $nodelist = $xpath->query('//cuerpo/personas/persona'); echo 'Hay ' . $nodelist->length . ' nodos persona<br/>'; $xmlstr = $xslt->transformToXML($doc); } if ($xmlstr === NULL) { echo 'la transformacion retorna NULL<br/>'; return null; } // DEBUG //FileSystem::write('archivo_transformado_alta_pac.xml', $xmlstr); // Tengo que cargar todas las clases de la aplicacion actual porque // se como se llaman, pero no se donde estan. YuppLoader::forceReload(); YuppLoader::loadModel(); // FIXME: no carga las clases del imp! //print_r(YuppLoader::getLoadedClasses()); // Parseo el XML (deberia tener el formato de toXML) $xml = simplexml_load_string($xmlstr); // TEST: hay 252! $arr = $xml->xpath('//IMPPersona '); echo "En el transformado hay " . count($arr) . " personas<br/>"; // Referencias a paths con objetos para resolver referencias por loops $pathObj = new ArrayObject(); // *** // TODO: ver si el nodo raiz es un objeto simple o una coleccion. // <personas type="collection" of="IMPPersona"> if (!empty($xml['type']) && $xml['type'] == 'collection') { // TEST: // 252 nodos! echo count($xml->children()) . "<br/>"; // nodes, parentAttr, path, pathObj $list_po = self::toPOCollection($xml->children(), '/' . $xml->getName(), $pathObj); // TEST: error hay 381 personas! echo "Hay " . count($list_po) . " en la lista de PO<br/>"; return $list_po; } // Para el primer nodo, la clase es el nombre del elemento $class = $xml->getName(); $po = self::toPOSingle($class, $xml, '', -1, $pathObj); // TODO: no necesito loop detection para no entrar en loops infinitos, // lo necesito para resolver referencias a nodos, y reflejarlo en el PO que estoy creando. //$loopDetection = new ArrayObject(); //self::toXMLSingle( $po, $xml_dom, $xml_dom, $recursive, $loopDetection ); /* if ($xslt === NULL) return $xml_dom->saveXML(); else return $xslt->transformToXML( $xml_dom ); */ //print_r($pathObj); return $po; }
function xml2html($xmlcontent, $xsl, $settings) { global $debugMode; global $Settings; $xmlDoc = new DOMDocument(); $xmlDoc->load($xmlcontent); if ($debugMode) { $root = $xmlDoc->documentElement; $root->setAttribute("debug", "true"); } foreach (array_keys($settings) as $k) { $v = $settings[$k]; $root = $xmlDoc->documentElement; $root->setAttribute($k, $v); } $xslDoc = new DOMDocument(); $xslDoc->load($xsl); // подменить пути overrides $xpath = new DOMXpath($xslDoc); $includes = $xpath->query("//xsl:include"); foreach ($includes as $inc) { $ref = $inc->getAttribute("href"); $newRef = preg_replace('/overrides/i', '../' . $Settings["ThisFolder"] . '/' . $Settings["OverridesFolder"], $ref); $inc->setAttribute("href", $newRef); } $proc = new XSLTProcessor(); $proc->importStylesheet($xslDoc); return $proc->transformToXML($xmlDoc); }
/** * return the xslt processor with the xsl stylesheet loaded * @param DOMDocument $xsl * @return XSLTProcessor */ public static function getProcessor($xsl_dom) { // get the processor and import stylesheet xsl $xsl_processor = new XSLTProcessor(); $xsl_processor->importStylesheet($xsl_dom); return $xsl_processor; }
public function outPut() { $processor = new XSLTProcessor(); $processor->importStyleSheet($this->apresentacao); $out = $processor->transformToXML($this->conteudo); return $out; }
function DataAsHTML($xslFileName) { $xmlData = new SimpleXMLElement('<page/>'); $this->generateXML($xmlData, $this->data); $xmlfilemodule = simplexml_load_file("modules/" . $this->data['name'] . "/elements.xml"); $xmlData = dom_import_simplexml($xmlData)->ownerDocument; foreach (dom_import_simplexml($xmlfilemodule)->childNodes as $child) { $child = $xmlData->importNode($child, TRUE); $xmlData->documentElement->appendChild($child); } $xslfile = "templates/" . $this->template_name . "/" . $xslFileName . ".xsl"; $xslfilemodule = "modules/" . $this->data['name'] . "/elements.xsl"; if (in_array($this->data['name'], $this->selfPages)) { $xslfile = "templates/" . $this->template_name . "/" . $this->data['name'] . ".xsl"; } $domXSLobj = new DOMDocument(); $domXSLobj->load($xslfile); $xpath = new DomXPath($domXSLobj); $next = $xpath->query('//xsl:include'); $next = $next->item(0); $next->setAttribute('href', $xslfilemodule); $next->setAttribute('xml:base', ROOT_SYSTEM); $xsl = new XSLTProcessor(); $xsl->importStyleSheet($domXSLobj); return $xsl->transformToXml($xmlData); }
public function render() { eval("\$this->content = \$this->parse{$this->requesttype}();"); $this->checkFor404(); if ($this->format === 'object') { $this->printObject($this); } else { ob_start(); $file = $this->root . '/lib/xml/pigment.xml'; echo '<?xml version="1.0" encoding="ISO-8859-1"?>' . "\n"; if (is_file($file)) { include $file; } $xml = ob_get_contents(); ob_end_clean(); } if ($this->format === 'xml') { $type = $this->getHeader('xml'); header("Content-Type: {$type}"); echo $xml; } else { if ($this->format === 'default') { if ($this->requesttype === 'Content') { $type = $this->getHeader('xml'); $file = "{$this->root}/lib/xsl/{$this->version}.xsl"; if (!is_file($file)) { $file = "{$this->root}/lib/xsl/default.xsl"; } $xmldoc = DOMDocument::loadXML($xml); $xsldoc = new DomDocument(); $xsldoc->load($file); $proc = new XSLTProcessor(); $proc->registerPHPFunctions(); $proc->importStyleSheet($xsldoc); $output = $proc->transformToXML($xmldoc); $selector = '</html>'; if (strstr($output, $selector)) { $exp = explode($selector, $output); $uri = $_SERVER['REQUEST_URI']; $delim = strstr($uri, '?') ? '&' : '?'; $track = '<object type="text/html" width="1" height="1" data="' . $uri . $delim . 'log"></object>'; $output = implode($track . '</html>', $exp); } } else { $output = $this->content; } } } if (isset($output)) { if (isset($this->is404) && $this->is404 === true) { header(' ', true, 404); } else { header("Content-Type: {$this->header}"); } echo $output; if ($this->preferences['cache'] && !isset($this->querystring) && !isset($this->is404)) { $this->cache($output); } } }
/** * get product reviews from feefo * * @return array */ public function getProductsReview() { $check = true; $reviews = array(); $feefo_dir = Mage::getModel('core/config_options')->getLibDir() . DS . 'connector' . DS . 'feefo'; $helper = Mage::helper('ddg'); $logon = $helper->getFeefoLogon(); $limit = $helper->getFeefoReviewsPerProduct(); $products = $this->getQuoteProducts(); foreach ($products as $sku => $name) { $url = "http://www.feefo.com/feefo/xmlfeed.jsp?logon=" . $logon . "&limit=" . $limit . "&vendorref=" . $sku . "&mode=productonly"; $doc = new DOMDocument(); $xsl = new XSLTProcessor(); if ($check) { $doc->load($feefo_dir . DS . "feedback.xsl"); } else { $doc->load($feefo_dir . DS . "feedback-no-th.xsl"); } $xsl->importStyleSheet($doc); $doc->load($url); $productReview = $xsl->transformToXML($doc); if (strpos($productReview, '<td')) { $reviews[$name] = $xsl->transformToXML($doc); } $check = false; } return $reviews; }
function xsl_transform($filename, $xslname = null) { // Get the original XML document $xml = new DOMDocument(); $xml->load($filename); if ($xslname == null) { // extract bound stylesheet from embedded link $xp = new DOMXPath($xml); // use xpath to get the directive $pi = $xp->evaluate('/processing-instruction("xml-stylesheet")')->item(0); // extract the "data" part of it $data = $pi->data; // find out where the href starts $start = strpos($data, 'href='); // and extract the stylesheet name $xslname = XML_FOLDER . substr($data, $start + 6, -1); } // load the XSL stylesheet $xsl = new DOMDocument(); $xsl->load($xslname); // prime the transform engine $xslt = new XSLTProcessor(); $xslt->importStyleSheet($xsl); // and away we go! return $xslt->transformToXml($xml); }
/** * @param string $xslFile * @param array $xsltParameters * @param Element|Tag|Field|Set $element * @param string $ns namespace * * @return \DOMDocument */ public function transform($xslFile, $xsltParameters = array(), &$element, $ns = '') { $this->load($xslFile, LIBXML_NOCDATA, $result); if (!$result) { return $element; } foreach ($xsltParameters as $name => $value) { $this->processor->setParameter($ns, $name, $value); } if ($element instanceof Set) { $processor = $this->processor; $element->each(function (Element $el) use($processor, $xslFile) { $result = $processor->transformToDoc($el); if (!$result) { $el->after($el->ownerDocument->createComment('not transformed with ' . $xslFile)); } else { $el->replace($result->documentElement, $el); } }); return $element; } $result = $this->processor->transformToDoc($element); if (!$result) { $element->after($element->ownerDocument->createComment('not transformed with ' . $xslFile)); } $element->replace($result->documentElement, $element); return $element; }
/** * Executes Params XSLT (transformation to be used to convert parameters into query) for given query. */ function params() { $document =& JFactory::getDocument(); $viewName = JRequest::getVar('view', 'params'); $viewType = $document->getType(); $view =& $this->getView($viewName, $viewType); $data = JRequest::getVar('data', '', 'post', 'string', JREQUEST_ALLOWRAW); $query_id = JRequest::getInt('id_query', NULL); $result = $data; if ($query_id != NULL && !empty($data)) { $model_queries =& $this->getModel('queries'); $query = $model_queries->getQuery($query_id); if ($query != NULL && !empty($query->paramsxsl)) { $xml = new DOMDocument(); if ($xml->loadXML($data)) { // start xslt $xslt = new XSLTProcessor(); $xsl = new DOMDocument(); $xsl->loadXML($query->paramsxsl); $xslt->importStylesheet($xsl); $paramset = $xslt->transformToDoc($xml); $result = $xslt->transformToXML($xml); if ($result === false) { // TODO: any joomla function for this? header('HTTP/1.1 500 Internal Server Error'); } } } } $view->assign('value', $result); $view->display(); }
function process($xml) { /* load xsl*/ $filter = true; //remember edit on js file if ($filter) { $xmlSession = $_SESSION["process"]; //$xmlSession = simplexml_load_string($xmlSession); $xml = new DOMDocument(); $xml->loadXML($xmlSession); $fileXSLPath = $GLOBALS["fileXSL_process"]; $xslDoc = new DomDocument(); $xslDoc->load($fileXSLPath); //combine xsl into xml $proc = new XSLTProcessor(); $proc->importStyleSheet($xslDoc); $xmlTrans = $proc->transformToXML($xml); $xmlTrans = simplexml_load_string($xmlTrans); $resultXml = $xmlTrans->saveXML(); processFile($xml); echo $resultXml; } else { echo $xml->saveXML(); //way 2 //echo $xml->asXML(); } }
function getImportantActs($xml_url, $xsl_filename, $n_nodes) { try { // read the xml from url $xmldoc = new DomDocument(); $xmldoc->load($xml_url); // read xslt file $xsldoc = new DomDocument(); $xsldoc->load($xsl_filename); $xsl = new XSLTProcessor(); $xsl->importStyleSheet($xsldoc); // trasforma XML secondo l'XSLT ed estrae il contenuto del div $transformed_xml = new SimpleXMLElement($xsl->transformToXML($xmldoc)); $nodes = $transformed_xml->children(); // write values to screen $cnt = 0; foreach ($nodes as $node) { $cnt++; $atto = OppAttoPeer::retrieveByPK($node['atto_id']); printf("\t%d. %s => %f\n", $cnt, $atto->getTitoloCompleto(), $node['totale']); if ($cnt >= $n_nodes) { break; } } } catch (Exception $e) { printf("Errore durante la scrittura del file: %s\n", $e->getMessage()); } }
/** * Process parameters and display the page. * * @return void * @access public */ public function launch() { global $interface; // Retrieve the record from the index if (!($record = $this->db->getRecord($_GET['id']))) { PEAR_Singleton::raiseError(new PEAR_Error('Record Does Not Exist')); } // Send basic information to the template. $interface->setPageTitle(isset($record['heading']) ? $record['heading'] : 'Heading unavailable.'); $interface->assign('record', $record); // Load MARC data require_once ROOT_DIR . '/sys/MarcLoader.php'; $marcRecord = MarcLoader::loadMarcRecordFromRecord($record); if (!$marcRecord) { PEAR_Singleton::raiseError(new PEAR_Error('Cannot Process MARC Record')); } $xml = trim($marcRecord->toXML()); // Transform MARCXML $style = new DOMDocument(); $style->load('services/Record/xsl/record-marc.xsl'); $xsl = new XSLTProcessor(); $xsl->importStyleSheet($style); $doc = new DOMDocument(); if ($doc->loadXML($xml)) { $html = $xsl->transformToXML($doc); $interface->assign('details', $html); } // Assign the ID of the last search so the user can return to it. $interface->assign('lastsearch', isset($_SESSION['lastSearchURL']) ? $_SESSION['lastSearchURL'] : false); // Display Page $interface->setTemplate('record.tpl'); $interface->display('layout.tpl'); }
/** * @see OAIMetadataFormat#toXml */ function toXml(&$oaiRecord, $format = null) { $record =& $oaiRecord->getData('record'); switch ($format) { case 'oai_dc': static $xslDoc, $proc; if (!isset($xslDoc) || !isset($proc)) { // Cache the XSL $xslDoc = new DOMDocument(); $xslDoc->load('http://www.loc.gov/standards/marcxml/xslt/MARC21slim2OAIDC.xsl'); $proc = new XSLTProcessor(); $proc->importStylesheet($xslDoc); } $xmlDoc = new DOMDocument(); $xmlDoc->loadXML($record->getContents()); $xml = $proc->transformToXML($xmlDoc); // Cheesy: strip the XML header if (($pos = strpos($xml, '<oai_dc:dc')) > 0) { $xml = substr($xml, $pos); } return $xml; case 'oai_marc': case 'marcxml': return $record->getContents(); default: fatalError("Unable to convert MARC to {$format}!\n"); } }
protected function doRemoveNamespacedNodes(&$pq) { $xsl = <<<____EOF <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xsl"> <xsl:template match="*[local-name()=name()]"> <xsl:element name="{local-name()}"> <xsl:apply-templates select="@* | node()"/> </xsl:element> </xsl:template> <xsl:template match="@* | text()"> <xsl:copy/> </xsl:template> </xsl:stylesheet> ____EOF; $xsl = \DOMDocument::loadXml($xsl); $proc = new \XSLTProcessor(); $proc->importStyleSheet($xsl); $pq->document = $proc->transformToDoc($pq->document); for ($i = $pq->document->documentElement->attributes->length; $i >= 0; --$i) { $attr = $pq->document->documentElement->attributes->item($i); if (substr($attr->name, 0, 6) === 'xmlns:') { $pq->document->documentElement->removeAttributeNode($attr); } } $pq = PhpQuery::newDocumentHTML($pq->document->saveHTML()); return $this; }
/** * Main entry point * Perform the XSLT transformation on the found sas.xml files to transform the xml content to the wiki format * Create an output.xml file containing the export * @return boolean */ public function transform() { $this->log('Sas 2 Wiki', true); $sasFiles = $this->getSasFiles(); $doc = new DOMDocument(); $doc->load($this->xslFile); $xsl = new XSLTProcessor(); $xsl->importStyleSheet($doc); $buffer = ''; foreach ($sasFiles as $sasFile) { $this->log('perform transformation on ' . $sasFile); $doc->load($sasFile); $buffer .= $xsl->transformToXML($doc); } if (!empty($buffer)) { $content = "====== List of services ======\nThe sections below give us the list of all available services in the process authoring tool. \nSo you can use each of these TAO's chunk to build your services."; $content .= "\n{$buffer}\n"; $content .= "''Generated by wfEngine/scripts/wikiSas.php : SaSWiki::transform on " . date('Y-m-d') . "''"; } if (file_put_contents($this->outputFile, $content)) { $this->log($this->outputFile . " created"); return true; } return false; }
public function doAction(Zend_Controller_Action $action) { $entryId = $action->getRequest()->getParam('entry-id'); $xslt = $action->getRequest()->getParam('xslt'); $this->client = Infra_ClientHelper::getClient(); $xml = $this->client->media->getMrss($entryId); $xslParams = array(); $xslParams['entryDistributionId'] = ''; $xslParams['distributionProfileId'] = ''; ob_start(); $xmlDoc = new DOMDocument(); $xmlDoc->loadXML($xml); $xsltDoc = new DOMDocument(); $xsltDoc->loadXML($xslt); $xslt = new XSLTProcessor(); $xslt->registerPHPFunctions(); // it is safe to register all php fuctions here $xslt->setParameter('', $xslParams); $xslt->importStyleSheet($xsltDoc); $ob = ob_get_clean(); ob_end_clean(); if ($ob) { $action->getHelper('json')->direct(array('error' => $ob)); } $obj = array('result' => $xslt->transformToXml($xmlDoc)); $action->getHelper('json')->direct($obj); }
/** * @Route("/{volume}/{id}", requirements={"id" = "\d+", "volume" = "\d+"}) * @param $volume * @param $id * @param bool|false $showByName * @return \Symfony\Component\HttpFoundation\Response */ public function showArticleById($volume, $id, $showByName = false) { $id_article = 'v' . $volume . '-' . $id; $xml_source = new \DOMDocument(); $xml_source->load('../src/AppBundle/Resources/xml/volume' . $volume . '.xml'); $xslt_root = new \DOMDocument(); $xslt_root->load('../src/AppBundle/Resources/xslt/article.xsl'); $transform = new \XSLTProcessor(); $transform->importStylesheet($xslt_root); $xpath = new \DOMXpath($xml_source); $page_debut_xpath = $xpath->query("//div[@type='article' and @xml:id='" . $id_article . "']/preceding::pb[position()\n =1]"); $num_vue = $page_debut_xpath->item(0)->attributes->item(1)->nodeValue; $page_debut = substr($num_vue, strpos($num_vue, "p") + 1); $article_result = $xpath->query("//div[@type='article' and @xml:id='" . $id_article . "']"); $vedette_adresse_text = $xpath->query("//div[@type='article' and @xml:id='" . $id_article . "']/child::div[position()=1]/child::p[position()=1]/child::seg[@type='vedette_adresse']/descendant::text()"); $vedette_adresse = ''; if ($vedette_adresse_text->length > 0) { for ($i = 0; $i < $vedette_adresse_text->length; $i++) { $vedette_adresse .= $vedette_adresse_text->item($i)->nodeValue; } } $pos_article = null; if ($article_result->length > 0) { $content = $article_result->item(0); $xml_transform = new \DOMDocument(); $xml_transform->appendChild($xml_transform->importNode($content, true)); $article = $transform->transformToDoc($xml_transform)->saveHTML(); $pos_article = intval($id); $next_article = $pos_article + 1; $previous_article = $pos_article - 1; if ($pos_article == 1) { $previous_article = null; } else { if ($showByName) { $previous_article_id = 'v' . $volume . '-' . $previous_article; $previous_article_vedette_adresse_text = $xpath->query("//div[@type='article' and @xml:id='" . $previous_article_id . "']/child::div[position()=1]/child::p[position()=1]/child::seg[@type='vedette_adresse']"); if ($previous_article_vedette_adresse_text->length > 0) { $previous_article = $previous_article_vedette_adresse_text->item(0)->textContent; $previous_article = str_replace(" ", "_", $previous_article); } } } $next_article_id = 'v' . $volume . '-' . $next_article; $xpath_find_next_article = $xpath->query("//div[@type='article' and @xml:id='" . $next_article_id . "']"); if ($xpath_find_next_article->length == 0) { $next_article = null; } else { if ($showByName) { $next_article_vedette_adresse_text = $xpath->query("//div[@type='article' and @xml:id='" . $next_article_id . "']/child::div[position()=1]/child::p[position()=1]/child::seg[@type='vedette_adresse']"); if ($next_article_vedette_adresse_text->length > 0) { $next_article = $next_article_vedette_adresse_text->item(0)->textContent; $next_article = str_replace(" ", "_", $next_article); } } } return $this->render('AppBundle::article.html.twig', array('article' => $article, 'id_article' => $id, 'name_article' => $vedette_adresse, 'next_article' => $next_article, 'previous_article' => $previous_article, 'volume' => $volume, 'first_page' => $page_debut)); } return $this->render('AppBundle::404.html.twig', array('error' => 404)); }
function xmltransform($xml, $xslt_f) { $xslt = new XSLTProcessor(); $xmldoc = DomDocument::loadXML($xml, LIBXML_COMPACT); $xsltdoc = DomDocument::load($xslt_f, LIBXML_COMPACT); $xslt->importStylesheet($xsltdoc); return $xslt->transformToXML($xmldoc); }
/** * Tests that the header stylesheet does not reprints the complete log file * content. This issue occured with some CC versions because the corresponding * template does not include a default template for <b>/</b>. * * @return void * @group stylesheet */ public function testHeaderDoesNotContainCompleteLogFileContentXsltProcessor() { $xsl = $this->createXslStylesheet('header.xsl'); $xml = $this->createCruiseControlLog(); $proc = new XSLTProcessor(); $proc->importStylesheet($xsl); $this->assertSame($this->loadExpectedResult(), trim($proc->transformToXml($xml))); }
function outdom($xmldom) { $xsl = new XSLTProcessor(); $xsldom = new DOMDocument(); $xsldom->load("convert-remove-namespace.xslt"); $xsl->importStyleSheet($xsldom); echo $xsl->transformToXML($xmldom); }
function transform($xml_data) { if ($this->de() && ($xml = $this->getXML($xml_data))) { $proc = new XSLTProcessor(); $proc->importStyleSheet($this->dd()); return $proc->transformToXML($xml->dd()); } throw new Exception('Template not found'); }