本文整理汇总了PHP中XSLTProcessor::transformToXML方法的典型用法代码示例。如果您正苦于以下问题:PHP XSLTProcessor::transformToXML方法的具体用法?PHP XSLTProcessor::transformToXML怎么用?PHP XSLTProcessor::transformToXML使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XSLTProcessor
的用法示例。
在下文中一共展示了XSLTProcessor::transformToXML方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getProductsReview
/**
* 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;
}
示例2: exec
public function exec() {
$proc = new \XSLTProcessor;
$proc->importStylesheet($this->_stylesheet);
$content = $proc->transformToXML($this->_datafile);
return $content;
}
示例3: getProductsReview
/**
* 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;
}
示例4: params
/**
* 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();
}
示例5: render
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);
}
}
}
示例6: process
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();
}
}
示例7: go
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;
}
示例8: process
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;
}
}
示例9: xml2html
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);
}
示例10: outPut
public function outPut()
{
$processor = new XSLTProcessor();
$processor->importStyleSheet($this->apresentacao);
$out = $processor->transformToXML($this->conteudo);
return $out;
}
示例11: toPO
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;
}
示例12: transform
/**
* 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;
}
示例13: display
/**
* 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);
}
示例14: toXml
/**
* @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");
}
}
示例15: getImportantActs
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());
}
}