topical media & game development

talk show tell print

server-php-xml-class-xslt-class-xslt.php / php



  <?php 
  //   

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

###





















// Title : class_xslt.php // Version : 1.1 // Author : Luis Argerich (lrargerich@yahoo.com) // Last modification date : 03-11-2002 // Description : An abstraction class for the XSLT extension // this one uses the Sablotron processor but we // may release classes based on other processors // later. //

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

###





















// History: // 03-11-2001 Class modified to work with the new XSLT extension // 11-11-2001 Class created //

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

###





















// To-Dos: //

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

###





















// How to use it: // include_once("class_xslt.php"); // xslt=new Xslt(); // xslt->setXml("applications.xml"); // or setXmlString(xml) // xslt->setXsl("tr1.xsl"); // or setXslString(xsl) // if(xslt->transform()) { // ret=xslt->getOutput(); // echo ret; // } else { // print("Error:".xslt->getError()); // } //

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

#

###





















// CHECK FOR DOUBLE DEFINITION HERE if(defined("_class_xslt_is_included")) { // do nothing since the class is already included } else { define("_class_xslt_is_included",1); class Xslt { var xsl, xml, output, error ; /* Constructor */ function xslt() { this->processor = xslt_create(); } /* Destructor */ function destroy() { xslt_free(this->processor); } /* output methods */ function setOutput(string) { this->output = string; } function getOutput() { return this->output; } /* set methods */ function setXmlString(xml) { this->xml=xml; return true; } function setXslString(xsl) { this->xsl=xsl; return true; } function setXml(uri) { if(doc = new docReader(uri)) { this->xml = doc->getString(); return true; } else { this->setError("Could not open xml"); return false; } } function setXsl(uri) { if(doc = new docReader(uri)) { this->xsl = doc->getString(); return true; } else { this->setError("Could not open uri"); return false; } } /* transform method */ function transform() { arguments = array( '/_xml' => this->xml, '/_xsl' => this->xsl ); ret = xslt_process(this->processor, 'arg:/_xml', 'arg:/_xsl', NULL, arguments); if(!ret) { this->setError(xslt_error(this->processor)); return false; } else { this->setOutput(ret); return true; } } /* Error Handling */ function setError(string) { this->error = string; } function getError() { return this->error; } } /* docReader -- read a file or URL as a string */ /* test */ /* docUri = new docReader('http://www.someurl.com/doc.html'); echo docUri->getString(); */ class docReader { var string; // public string representation of file var type; // private URI type: 'file','url' var bignum = 1000000; var uri; /* public constructor */ function docReader(uri) { // returns integer this->setUri(uri); this->uri=uri; this->setType(); fp = fopen(this->getUri(),"r"); if(fp) { // get length if (this->getType() == 'file') { length = filesize(this->getUri()); } else { length = this->bignum; } this->setString(fread(fp,length)); return 1; } else { return 0; } } /* determine if a URI is a filename or URL */ function isFile(uri) { // returns boolean if (strstr(uri,'http://') == uri) { return false; } else { return true; } } /* set and get methods */ function setUri(string) { this->uri = string; } function getUri() { return this->uri; } function setString(string) { this->string = string; } function getString() { return this->string; } function setType() { if (this->isFile(this->uri)) { this->type = 'file'; } else { this->type = 'url'; } } function getType() { return this->type; } } } ?>


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.