PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

XMLWriter->endAttribute()> <XMLReader->XML()
Last updated: Fri, 26 Jan 2007

view this page in

CLXXVIII. XMLWriter Functions

Введение

This is the XMLWriter extension. It wraps the libxml xmlWriter API.

This extension represents a writer that provides a non-cached, forward-only means of generating streams or files containing XML data.

This extension can be used in an object oriented style or a procedural one. Every method documented describes the alternative procedural call.

Предопределенные классы

XMLWriter

Методы

Типы ресурсов

There is one resource used by the procedural version of the XMLWriter extension: returned by xmlwriter_open_memory() or xmlwriter_open_uri().

Предопределенные константы

Данное расширение не определяет никакие константы.

Содержание
XMLWriter->endAttribute() -- End attribute
XMLWriter->endCData() -- End current CDATA
XMLWriter->endComment() -- Create end comment
XMLWriter->endDocument() -- End current document
XMLWriter->endDTDAttlist() -- End current DTD AttList
XMLWriter->endDTDElement() -- End current DTD element
XMLWriter->endDTDEntity() -- End current DTD Entity
XMLWriter->endDTD() -- End current DTD
XMLWriter->endElement() -- End current element
XMLWriter->endPI() -- End current PI
XMLWriter->flush() -- Flush current buffer
XMLWriter->fullEndElement() -- End current element
XMLWriter->openMemory() -- Create new xmlwriter using memory for string output
XMLWriter->openURI() -- Create new xmlwriter using source uri for output
XMLWriter->outputMemory() -- Returns current buffer
XMLWriter->setIndentString() -- Set string used for indenting
XMLWriter->setIndent() -- Toggle indentation on/off
XMLWriter->startAttributeNS() -- Create start namespaced attribute
XMLWriter->startAttribute() -- Create start attribute
XMLWriter->startCData() -- Create start CDATA tag
XMLWriter->startComment() -- Create start comment
XMLWriter->startDocument() -- Create document tag
XMLWriter->startDTDAttlist() -- Create start DTD AttList
XMLWriter->startDTDElement() -- Create start DTD element
XMLWriter->startDTDEntity() -- Create start DTD Entity
XMLWriter->startDTD() -- Create start DTD tag
XMLWriter->startElementNS() -- Create start namespaced element tag
XMLWriter->startElement() -- Create start element tag
XMLWriter->startPI() -- Create start PI tag
XMLWriter->text() -- Write text
XMLWriter->writeAttributeNS() -- Write full namespaced attribute
XMLWriter->writeAttribute() -- Write full attribute
XMLWriter->writeCData() -- Write full CDATA tag
XMLWriter->writeComment() -- Write full comment tag
XMLWriter->writeDTDAttlist() -- Write full DTD AttList tag
XMLWriter->writeDTDElement() -- Write full DTD element tag
XMLWriter->writeDTDEntity() -- Write full DTD Entity tag
XMLWriter->writeDTD() -- Write full DTD tag
XMLWriter->writeElementNS() -- Write full namesapced element tag
XMLWriter->writeElement() -- Write full element tag
XMLWriter->writePI() -- Writes a PI
XMLWriter->writeRaw() -- Write a raw XML text


XMLWriter->endAttribute()> <XMLReader->XML()
Last updated: Fri, 26 Jan 2007
 
add a note add a note User Contributed Notes
XMLWriter Functions
Yves Sucaet
25-Jul-2007 07:10
If you want your XML-output to be seen as XML by the browser, you need to modify your header. The XmlWriter does not do this for you! Therefore, the first line of your script should be:

header("Content-type: text/xml");
robajz [a] robajz [.] info
20-Nov-2006 01:23
Hi,

There already is a class xmlWriter, although it is not documented. This is a rewrite of the example from [http://cz2.php.net/manual/en/ref.xmlwriter.php#64484 Carlos Averett] and works well on my php 5.1.6

<?php
    $xw
= new xmlWriter();
   
$xw->openMemory();
   
   
$xw->startDocument('1.0','UTF-8');
   
$xw->startDtd('html','-//WAPFORUM//DTD XHTML Mobile 1.0//EN', 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd');
   
$xw->endDtd();
   
$xw->startElement ('html'); // <html>
   
$xw->writeAttribute( 'xmlns', 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd');
   
$xw->writeAttribute( 'xm:lang', 'en');
  
   
$xw->startElement('head'); // <head>
   
   
$xw->writeElement ('title', 'Test WAP Document');
   
   
$xw->endElement(); // </head>
   
$xw->startElement('body'); // <body>
   
$xw->startElement('ol'); // <ol>
   
   
$xw->writeElement ('li', 'One Item &amp;  <sss <ss />></ss>');
   
$xw->writeElement ('li', 'Another Item');
   
$xw->writeElement ('li', 'Another Item');
   
   
$xw->endElement(); // </ol>
   
$xw->endElement(); // </body>
   
$xw->endElement(); // </html>
   
   
$xw->endDtd();
    print
$xw->outputMemory(true);   
?>
Alexandre Arica
16-Apr-2006 05:25
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>
Carlos Averett
15-Apr-2006 10:49
Using XMLWriter to create a WAP page:

<?php
$memory
= xmlwriter_open_memory();
xmlwriter_start_document($memory,'1.0','UTF-8');
xmlwriter_start_dtd($memory,'html','-//WAPFORUM//DTD XHTML Mobile 1.0//EN', 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd');
xmlwriter_end_dtd($memory);
xmlwriter_start_element ($memory,'html'); // <html>
xmlwriter_write_attribute( $memory, 'xmlns', 'http://www.wapforum.org/DTD/xhtml-mobile10.dtd');
xmlwriter_write_attribute( $memory, 'xm:lang', 'en');

xmlwriter_start_element($memory,'head'); // <head>

xmlwriter_write_element ($memory,'title', 'Test WAP Document');

xmlwriter_end_element($memory); // </head>
xmlwriter_start_element($memory,'body'); // <body>
xmlwriter_start_element($memory,'ol'); // <ol>

xmlwriter_write_element ($memory,'li', 'One Item');
xmlwriter_write_element ($memory,'li', 'Another Item');
xmlwriter_write_element ($memory,'li', 'Another Item');

xmlwriter_end_element($memory); // </ol>
xmlwriter_end_element($memory); // </body>
xmlwriter_end_element($memory); // </html>

xmlwriter_end_dtd($memory);
$xml = xmlwriter_output_memory($memory,true);
?>

Output:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.wapforum.org/DTD/xhtml-mobile10.dtd" xm:lang="en">
<head>
<title>Test WAP Document</title>
</head>
<body>
<ol>
<li>One Item</li>
<li>Another Item</li>
<li>Another Item</li>
</ol>
</body>
</html>

XMLWriter->endAttribute()> <XMLReader->XML()
Last updated: Fri, 26 Jan 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites