本文整理汇总了PHP中xslt_process函数的典型用法代码示例。如果您正苦于以下问题:PHP xslt_process函数的具体用法?PHP xslt_process怎么用?PHP xslt_process使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了xslt_process函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: process
/**
* Transforms the given XML data and XSL stylesheet and
* returns the completed transformation as a string, or returns
* zero (0) in case of failure. Note: The $params property only
* works with more recent versions of PHP (ie. 4.2+).
*
* @access public
* @param string $xsl_data
* @param string $xml_data
* @param associative array $params
* @return string
*
*/
function process($xsl_data = '', $xml_data = '', $params = array())
{
if (PHP_VERSION < '4.1.0') {
if (xslt_process($xsl_data, $xml_data, $res)) {
return $res;
} else {
return 0;
}
} else {
$args = array();
if (@file_exists($xsl_data)) {
$xsltfile = $xsl_data;
} else {
$xsltfile = 'arg:/_xsl';
$args['/_xsl'] = $xsl_data;
}
if (@file_exists($xml_data)) {
$xmlfile = $xml_data;
} else {
$xmlfile = 'arg:/_xml';
$args['/_xml'] = $xml_data;
}
$res = xslt_process($this->handle, $xmlfile, $xsltfile, null, $args, $params);
if ($res) {
return $res;
} else {
return 0;
}
}
}
示例2: transform
function transform()
{
$xslhandler = xslt_create();
$this->outputXML = xslt_process($xslhandler, $this->{$inputXML}, $this->{$xslTransform});
xslt_free($xslhandler);
return $this->outputXML;
}
示例3: smarty_modifier_xslt
function smarty_modifier_xslt($xml, $xslfile = '')
{
$xh = xslt_create();
$arguments = array('/_xml' => $xml);
return xslt_process($xh, 'arg:/_xml', $xslfile, NULL, $arguments);
xslt_free($xh);
}
示例4: upload_article_handler
function upload_article_handler(&$request, &$session, &$files) {
$publication = Input::Get('Pub', 'int', 0);
$issue = Input::Get('Issue', 'int', 0);
$section = Input::Get('Section', 'int', 0);
$language = Input::Get('Language', 'int', 0);
$sLanguage = Input::Get('sLanguage', 'int', 0);
$articleNumber = Input::Get('Article', 'int', 0);
if (!Input::IsValid()) {
echo "Input Error: Missing input";
return;
}
// Unzip the sxw file to get the content.
$zip = zip_open($files["filename"]["tmp_name"]);
if ($zip) {
$xml = null;
while ($zip_entry = zip_read($zip)) {
if (zip_entry_name($zip_entry) == "content.xml") {
if (zip_entry_open($zip, $zip_entry, "r")) {
$xml = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
zip_entry_close($zip_entry);
}
}
}
zip_close($zip);
if (!is_null($xml)) {
// Write the XML to a file because the XSLT functions
// require it to be in a file in order to be processed.
$tmpXmlFilename = tempnam("/tmp", "ArticleImportXml");
$tmpXmlFile = fopen($tmpXmlFilename, "w");
fwrite($tmpXmlFile, $xml);
fclose($tmpXmlFile);
// Transform the OpenOffice document to DocBook format.
$xsltProcessor = xslt_create();
$docbookXml = xslt_process($xsltProcessor,
$tmpXmlFilename,
"sxwToDocbook.xsl");
unlink($tmpXmlFilename);
// Parse the docbook to get the data.
$docBookParser = new DocBookParser();
$docBookParser->parseString($docbookXml, true);
$article = new Article($articleNumber, $language);
$article->setTitle($docBookParser->getTitle());
$article->setIntro($docBookParser->getIntro());
$article->setBody($docBookParser->getBody());
// Go back to the "Edit Article" page.
header("Location: /$ADMIN/articles/edit.php?Pub=$publication&Issue=$issue&Section=$section&Article=$articleNumber&Language=$language&sLanguage=$sLanguage");
} // if (!is_null($xml))
} // if ($zip)
// Some sort of error occurred - show the upload page again.
include("index.php");
} // fn upload_article_handler
示例5: process
function process($xsl_data = '', $xml_data = '')
{
if (@xslt_process($xsl_data, $xml_data, $res)) {
return $res;
} else {
return 0;
}
}
示例6: INCLUDE_xml_xsl
function INCLUDE_xml_xsl($xmlContent, $xslFile)
{
$p = xslt_create(void);
$args = array('/_xml' => $xmlContent);
$result = xslt_process($p, 'arg:/_xml', $xslFile, NULL, $args);
xslt_free($p);
return utf8_decode($result);
}
示例7: front_xhtml_output
function front_xhtml_output()
{
$buf = ob_get_contents();
$xh = xslt_create();
$args = array('/_xml' => '<' . '?xml version="1.0" encoding="utf-8"?' . '>' . $buf);
ob_end_clean();
$params = array('path_site_root' => PATH_SITE_ROOT);
$result = xslt_process($xh, 'arg:/_xml', PATH_INC_FRONTEND . 'front_xhtml.xsl', null, $args, $params);
eval('?>' . $result);
}
示例8: perform_xslt
function perform_xslt($xml, $s, $islast, $isfirst, $param_path)
{
global $base_path, $charset;
$transform = "{$base_path}/admin/convert/imports/" . $param_path . "/" . $s['XSLFILE'][0]['value'];
//Si c'est la première transformation, on rajoute les entêtes
if ($isfirst) {
if ($s['ENCODING']) {
$xml1 = "<?xml version=\"1.0\" encoding=\"" . $s['ENCODING'] . "\"?>\n<" . $s['ROOTELEMENT'][0]["value"];
} else {
$xml1 = "<?xml version=\"1.0\" encoding=\"{$charset}\"?>\n<" . $s['ROOTELEMENT'][0]["value"];
}
if ($s["NAMESPACE"]) {
$xml1 .= " xmlns:" . $s["NAMESPACE"][0]["ID"] . "='" . $s["NAMESPACE"][0]["value"] . "' ";
}
$xml1 .= ">\n" . $xml . "\n</" . $s['ROOTELEMENT'][0]['value'] . ">";
$xml = $xml1;
}
$f = fopen($transform, "r");
$xsl = fread($f, filesize($transform));
fclose($f);
//Création du processeur
$xh = xslt_create();
//Encodage = $charset
if (defined("ICONV_IMPL")) {
xslt_set_encoding($xh, "{$charset}");
}
// Traite le document
if ($result = @xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, array("/_xml" => $xml, "/_xsl" => $xsl))) {
$r['VALID'] = true;
$r['DATA'] = $result;
$r['ERROR'] = "";
//Si c'est la dernière transformation, on supprime les entêtes et l'élément root
if ($islast) {
$p = preg_match("/<" . $s['TNOTICEELEMENT'][0]['value'] . "(?:\\ [^>]*|)>/", $r["DATA"], $m, PREG_OFFSET_CAPTURE);
if ($p) {
$r['DATA'] = " " . substr($r['DATA'], $m[0][1]);
}
$p1 = 0;
$p = 0;
while ($p !== false) {
$p1 = $p;
$p = @strpos($r['DATA'], "</" . $s['TNOTICEELEMENT'][0]['value'] . ">", $p1 + strlen("</" . $s['TNOTICEELEMENT'][0]['value'] . ">"));
}
if ($p1 !== false && $p1 != 0) {
$r['DATA'] = substr($r['DATA'], 0, $p1 + strlen($s['TNOTICEELEMENT'][0]['value']) + 3) . "\n";
}
}
} else {
$r['VALID'] = false;
$r['DATA'] = "";
$r['ERROR'] = "Sorry, notice could not be transformed by {$transform} the reason is that " . xslt_error($xh) . " and the error code is " . xslt_errno($xh);
}
xslt_free($xh);
return $r;
}
示例9: apply_transform
function apply_transform($title, $content)
{
if (!$this->xslt_extension_availible) {
return 'The xslt_transformation used, needs the "xslt" extension of php !!!';
}
$xh = xslt_create();
$xsltarguments = array('/_xml' => $content);
$result = xslt_process($xh, 'arg:/_xml', $this->xsltfile, NULL, $xsltarguments, $this->xsltparameters);
xslt_free($xh);
return $result;
}
示例10: xml_select
function xml_select($xpath, $file)
{
$xsl = "<?xml version='1.0'?>\n" . "<xsl:transform version='1.0' " . "xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n" . "<xsl:template match='/'>\n" . "<resultset>\n" . "<xsl:apply-templates select='{$xpath}'/>\n" . "</resultset>\n" . "</xsl:template>\n" . "<xsl:template match='node()|@*'>\n" . "<xsl:copy>\n" . "<xsl:apply-templates select='node()|@*'/>\n" . "</xsl:copy>\n" . "</xsl:template>\n" . "</xsl:transform>\n";
$e = xslt_create();
$o = xslt_process($e, $file, 'arg:/xsl', NULL, array('xsl' => $xsl), array('path' => $xpath));
if (!$o) {
print_lined($xsl);
}
xslt_free($e);
return $o;
}
示例11: transform
function transform()
{
global $ilLog;
$this->__init();
$this->fo_string = @xslt_process($this->xslt_handler, "arg:/_xml", "arg:/_xsl", null, $this->xslt_args, $this->xslt_params);
if (strlen($error_msg = xslt_error($this->xslt_handler))) {
$ilLog->write("Error generating pdf: " . $error_msg);
return false;
}
xslt_free($this->xslt_handler);
return true;
}
示例12: transform
function transform()
{
$args = array('/_xml' => $this->xml, '/_xsl' => $this->xsl);
$result = xslt_process($this->processor, 'arg:/_xml', 'arg:/_xsl', NULL, $args);
if ($result) {
$this->setOutput($result);
} else {
// $err = "Error: " . xslt_error ($this->processor) . " Errorcode: " . xslt_errno ($this->processor);
$this->setError(xslt_error($this->processor));
$this->setErrorCode(xslt_errno($this->processor));
}
}
示例13: output
function output($output)
{
/* Falls die Seite als HTML ausgegeben werden soll */
/* Eine Weiche einbauen, fals die XSLT Extension nicht geladen ist ->
http://koders.com/php/fidB0434D36F01703F9ACAB5E21065E315FE44D2C57.aspx?s=xslt_process
http://koders.com/php/fid78371B5F37DAE258E3258B91CC791A712CBF2AAC.aspx?s=xslt_process
*/
if (isset($_SESSION['variables']['extention']) and $_SESSION['variables']['extention'] == "html" and IS_XSLT) {
if (version_compare(phpversion(), "5.0", ">")) {
$processor = new XSLTProcessor();
$xmlDom = new DOMDocument();
$xslDom = new DOMDocument();
$xmlDom->loadXML($output);
$xslDom->load(BIN_DIR . "xslt/index.xsl");
$processor->importstylesheet($xslDom);
/* Transformiert den Output
:TODO: Fehlerabfrage der Resultates
:ATTENTION: eventuell werden die im XSL-File includeten Dateien falsch eingebunden*/
$result = $processor->transformtoxml($xmlDom);
} else {
/* PHP4 XSLT Prozessor, ist auch unter PHP5 erreichbar, nur langsamer */
/* XSL File auslesen und Content ueberschreiben */
$filename = "xslt/main.xsl";
$handle = fopen($filename, "r");
$xsl_contents = fread($handle, filesize($filename));
fclose($handle);
/* :TODO: Anpassen des xsc fuer die Uebergabe des Templatefiles */
// $xsl = sprintf($xsl_contents, $_SESSION['variables']['template_content']);
$xsl = $xsl_contents;
/* Stylesheet uebergeben */
$processor_arguments = array('/_xml' => $output, '/_xsl' => $xsl);
$processor = xslt_create();
xslt_set_encoding($processor, 'ISO-8859-1');
xslt_set_base($processor, 'file://' . BIN_DIR . 'xslt/');
/* Transformiert den Output */
$result = xslt_process($processor, 'arg:/_xml', 'arg:/_xsl', NULL, $processor_arguments);
if (!$result && xslt_errno($processor) > 0) {
$result = sprintf("Kann XSLT Dokument nicht umarbeiten [%d]: %s", xslt_errno($processor), xslt_error($processor));
}
xslt_free($processor);
}
/* Gibt das HTML-Dokument aus */
echo $result;
} else {
header("Content-Type: text/xml");
echo $output;
}
}
示例14: _output_xsl_generic_transform
/**
* Transformation générique d'un document XML via XSLT
* @param string $filename nom du fichier source
* @param string $filename_source nom du fichier en sortie
* @param string $stylesheet nom de la feuille XSLT
* @param array $params paramètres à passer à la feuille XSLT
* @access private
* @return boolean vrai quand tout se passe bien
*/
function _output_xsl_generic_transform($filename, $filename_cible, $stylesheet, $params = array())
{
/* Attention : code hautement toxique, il a fallu aller fouiller
dans les sources de PHP pour découvrir une grande partie des engins
nucléaires en jeu ici et rien ne garantit leur stabilité. Désolé pour
le développement durable, c'est pas trop ça ici. */
$xh = xslt_create();
$result = xslt_process($xh, $filename, PATH_INCLUDE . "xslt/" . $stylesheet, $filename_cible, array(), $params);
if (!$result) {
$msgerr = 'Erreur XSLT ' . xslt_errno($xh) . ' : ' . xslt_error($xh);
xslt_free($xh);
return false;
} else {
return true;
}
}
示例15: process
function process()
{
if (parent::isError($process = parent::process())) {
return $process;
}
// Prepare the params for passing to the stylesheet
$params = array('filter' => $this->filter, 'browser' => $this->browser, 'comment' => $this->comment);
$xh = xslt_create();
$result = xslt_process($xh, $this->CSSMLDoc, $this->stylesheetDoc, null, $this->arguments, $params);
if ($this->output != 'STDOUT') {
$fp = fopen($this->output, 'w');
fwrite($fp, $result);
fclose($fp);
$result = true;
}
return $result;
}