Go to the documentation of this file.00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00034 class ilXML2FO
00035 {
00036 var $xslt = null;
00037 var $xml = null;
00038 var $fo_string = null;
00039
00040 var $xslt_handler = null;
00041 var $xslt_args = null;
00042
00043 function ilXML2FO()
00044 {
00045
00046 }
00047
00048 function setXMLString($a_xml)
00049 {
00050 $this->xml = $a_xml;
00051 }
00052 function getXMLString()
00053 {
00054 return $this->xml;
00055 }
00056 function setXSLTLocation($xslt_location)
00057 {
00058 $this->xslt = $xslt_location;
00059 }
00060 function getXSLTLocation()
00061 {
00062 return $this->xslt;
00063 }
00064 function getFOString()
00065 {
00066 #return file_get_contents('./Services/Transformation/fo.xml');
00067 return $this->fo_string;
00068 }
00069
00070
00071 function transform()
00072 {
00073 global $ilLog;
00074
00075 $this->__init();
00076
00077 $this->fo_string = @xslt_process($this->xslt_handler,
00078 "arg:/_xml",
00079 "arg:/_xsl",
00080 null,
00081 $this->xslt_args,
00082 null);
00083
00084
00085 if(strlen($error_msg = xslt_error($this->xslt_handler)))
00086 {
00087 $ilLog->write("Error generating pdf: ".$error_msg);
00088 return false;
00089 }
00090
00091 xslt_free($this->xslt_handler);
00092
00093 return true;
00094 }
00095
00096
00097 function __init()
00098 {
00099
00100 #domxml_open_mem($this->getXMLString(), DOMXML_LOAD_VALIDATING, $error);
00101 #if($error)
00102 #{
00103 # var_dump("<pre>","XML ERROR: ".$error,htmlentities($this->getXMLString()),"<pre>");
00104 #}
00105
00106 $this->xslt_handler = xslt_create();
00107 $this->xslt_args = array('/_xml' => $this->getXMLString(),
00108 '/_xsl' => file_get_contents($this->getXSLTLocation()));
00109
00110 return true;
00111 }
00112
00113
00114
00115
00116 }
00117 ?>