PHP: XMLWriter Functions - Manual

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

### Методы

- 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

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

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

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

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

add a note User Contributed Notes
XMLWriter Functions
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>`
add a note
XMLWriter->endAttribute() XMLReader->XML()

Last updated: Fri, 26 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 11:33:19 2007 PST