note 64491 added to ref.xmlwriter

From: Date: Sun, 16 Apr 2006 12:25:43 +0000
Subject: note 64491 added to ref.xmlwriter
Groups: php.notes 
Request: Send a blank email to php-notes+get-108254@lists.php.net to get a copy of this message
How to generate a simple XML document for a XSL-Transformation purpose. We have 3 files: - 'index.php' : output a XML document - 'XmlConstruct.class.php' : allow to construct a XML document with 'xmlwriter' - 'index.xsl' : contains a XSLT document Contents of the file 'index.php' : <?php $contents = array('page_title' => 'Generate a XHTML page from XML+XSLT files', 'welcome_msg' => 'Simple XHTML document from XML+XSLT files!'); require('XmlConstruct.class.php'); $XmlConstruct = new XmlConstruct('rootElement', 'index.xsl'); $XmlConstruct->fromArray($contents); $XmlConstruct->output(); ?> Contents of the file 'XmlConstruct.class.php' : <?php /** * Construct a simple XML document. * This class inherits from the (PHP) class 'xmlwriter'. * You will need at least PHP 5.1.2 * * @author Alexandre Arica * @since 16 April 2006 * @version 1.0 modified the 16 April 2006 */ class XmlConstruct extends XMLWriter { /** * Constructor. * @param string $prm_rootElementName A root element's name of a current xml document * @param string $prm_xsltFilePath Path of a XSLT file. * @access public * @param null */ public function __construct($prm_rootElementName, $prm_xsltFilePath=''){ $this->openMemory(); $this->setIndent(true); $this->setIndentString(' '); $this->startDocument('1.0', 'UTF-8'); if($prm_xsltFilePath){ $this->writePi('xml-stylesheet', 'type="text/xsl" href="'.$prm_xsltFilePath.'"'); } $this->startElement($prm_rootElementName); } /** * Set an element with a text to a current xml document. * @access public * @param string $prm_elementName An element's name * @param string $prm_ElementText An element's text * @return null */ public function setElement($prm_elementName, $prm_ElementText){ $this->startElement($prm_elementName); $this->text($prm_ElementText); $this->endElement(); } /** * Construct elements and texts from an array. * The array should contain an attribute's name in index part * and a attribute's text in value part. * @access public * @param array $prm_array Contains attributes and texts * @return null */ public function fromArray($prm_array){ if(is_array($prm_array)){ foreach ($prm_array as $index => $text){ $this->setElement($index, $text); } } } /** * Return the content of a current xml document. * @access public * @param null * @return string Xml document */ public function getDocument(){ $this->endElement(); $this->endDocument(); return $this->outputMemory(); } /** * Output the content of a current xml document. * @access public * @param null */ public function output(){ header('Content-type: text/xml'); echo $this->getDocument(); } } ?> Contents of the file 'index.xsl' : <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/TR/xhtml1/strict"> <xsl:output method="html" encoding="utf-8" /> <xsl:template match="rootElement"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title><xsl:value-of select="page_title" /></title> </head> <body> <xsl:value-of select="welcome_msg" /> </body> </html> </xsl:template> </xsl:stylesheet> ---- Server IP: 85.116.0.130 Probable Submitter: 84.9.212.107 ---- X-Spam-Status: No, hits=3.7 required=5.0 tests=DATE_MISSING,FROM_NO_LOWER, HTML_MESSAGE,HTML_TITLE_EMPTY autolearn=no version=2.64 ---- Manual Page -- http://www.php.net/manual/en/ref.xmlwriter.php Edit -- http://master.php.net/note/edit/64491 Del: integrated -- http://master.php.net/note/delete/64491/integrated Del: useless -- http://master.php.net/note/delete/64491/useless Del: bad code -- http://master.php.net/note/delete/64491/bad+code Del: spam -- http://master.php.net/note/delete/64491/spam Del: non-english -- http://master.php.net/note/delete/64491/non-english Del: in docs -- http://master.php.net/note/delete/64491/in+docs Del: other reasons-- http://master.php.net/note/delete/64491 Reject -- http://master.php.net/note/reject/64491 Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#108254) next »