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

search for in the

xmlwriter_end_attribute> <XMLReader->XML()
[edit] Last updated: Mon, 01 Nov 2010

view this page in

CLXXIV. Fonctions xmlwriter

Introduction

Voici l'extension xmlwriter. La documentation ne fait que lister les fonctions pour le moment.

Types de ressources

Cette extension ne définit aucune ressource.

Table des matières
xmlwriter_end_attribute -- Termine un attribut - retourne FALSE en cas d'erreur
xmlwriter_end_cdata -- Termine un bloc CDATA - retourne FALSE en cas d'erreur
xmlwriter_end_comment -- Termine un commentaire - retourne FALSE en cas d'erreur
xmlwriter_end_document -- Termine le document courant - retourne FALSE en cas d'erreur
xmlwriter_end_dtd_attlist -- Termine le AttList courant de la DTD - retourne FALSE en cas d'erreur
xmlwriter_end_dtd_element -- Termine l'élément courant de la DTD - retourne FALSE en cas d'erreur
xmlwriter_end_dtd_entity -- Termine l'entité courante de la DTD - retourne FALSE en cas d'erreur
xmlwriter_end_dtd -- Termine la DTD courante - retourne FALSE en cas d'erreur
xmlwriter_end_element -- Termine l'élément courant - retourne FALSE en cas d'erreur
xmlwriter_end_pi -- Termine le PI courant - retourne FALSE en cas d'erreur
xmlwriter_flush -- Affiche le buffer courant
xmlwriter_full_end_element -- Termine l'élément courant - retourne FALSE en cas d'erreur
xmlwriter_open_memory -- Crée un nouveau xmlwriter en utilisant la mémoire pour une sortie sous forme de chaîne de caractères
xmlwriter_open_uri -- Crée un nouveau xmlwriter en utilisant l'uri source pour la sortie
xmlwriter_output_memory -- Affiche le buffer courant sous la forme d'une chaîne
xmlwriter_set_indent_string -- Définit la chaîne à utiliser pour l'indentation - retourne FALSE en cas d'erreur
xmlwriter_set_indent -- Active ou non l'indentation - retourne FALSE en cas d'erreur
xmlwriter_start_attribute_ns -- Crée un attribut pour l'espace de noms - retourne FALSE en cas d'erreur
xmlwriter_start_attribute -- Crée un attribut - retourne FALSE en cas d'erreur
xmlwriter_start_cdata -- Crée une balise CDATA - retourne FALSE en cas d'erreur
xmlwriter_start_comment -- Crée un commentaire - retourne FALSE en cas d'erreur
xmlwriter_start_document -- Crée un document - retourne FALSE en cas d'erreur
xmlwriter_start_dtd_attlist -- Crée un élément AttList dans la balise DTD - retourne FALSE en cas d'erreur
xmlwriter_start_dtd_element -- Crée un élément dans la balise DTD - retourne FALSE en cas d'erreur
xmlwriter_start_dtd_entity -- Crée un élément dans une balise DTD - retourne FALSE en cas d'erreur
xmlwriter_start_dtd -- Crée une balise DTD - retourne FALSE en cas d'erreur
xmlwriter_start_element_ns -- Crée une balise d'espace de noms - retourne FALSE en cas d'erreur
xmlwriter_start_element -- Crée un élément - retourne FALSE en cas d'erreur
xmlwriter_start_pi -- Crée une balise PI - retourne FALSE en cas d'erreur
xmlwriter_text -- Écrit du texte - retourne FALSE en cas d'erreur
xmlwriter_write_attribute_ns -- Ecrit un attribut de l'espace de noms - retourne FALSE en cas d'erreur
xmlwriter_write_attribute -- Écrit un attribut - retourne FALSE en cas d'erreur
xmlwriter_write_cdata -- Écrit une balise CDATA - retourne FALSE en cas d'erreur
xmlwriter_write_comment -- Écrit un commentaire - retourne FALSE en cas d'erreur
xmlwriter_write_dtd_attlist -- Écrit la balise Attlist de la DTD - retourne FALSE en cas d'erreur
xmlwriter_write_dtd_element -- Écrit l'élément DTD - retourne FALSE en cas d'erreur
xmlwriter_write_dtd_entity -- Écrit l'entité DTD - retourne FALSE en cas d'erreur
xmlwriter_write_dtd -- Écrit la balise DTD - retourne FALSE en cas d'erreur
xmlwriter_write_element_ns -- Écrit la balise d'espace de noms - retourne FALSE en cas d'erreur
xmlwriter_write_element -- Écrit une balise complète - retourne FALSE en cas d'erreur
xmlwriter_write_pi -- Écrit complètement la balise PI - retourne FALSE en cas d'erreur
xmlwriter_write_raw -- Écrit du texte - retourne FALSE en cas d'erreur


xmlwriter_end_attribute> <XMLReader->XML()
[edit] Last updated: Mon, 01 Nov 2010
 
add a note add a note User Contributed Notes Fonctions xmlwriter
neftali dot yagua at gmail dot com 02-Jun-2011 06:43
Inspired in the XmlConstruct.

<?php
class XLIFFConstruct 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
     */
     
var $_phrase_id=1;
    public function
__construct(){
       
$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('xliff');
       
$this->writeAttribute('version', '1.0');
       
$this->startElement('file');
       
$this->writeAttribute('original', 'global');
       
$this->writeAttribute('source-language', 'es');
       
$this->writeAttribute('datatype', 'plaintext');
       
$this->writeAttribute('date', date('c'));
       
$this->startElement('body');
    }
    public function
addPhrase($source, $target){
       
$this->startElement('trans-unit');
     
$this->writeAttribute('id', $this->_phrase_id++);
       
$this->startElement('source');
       
$this->text($source);
     
$this->endElement();
       
$this->startElement('target');
     
$this->text($target);
     
$this->endElement();
     
$this->endElement();
    }
    public function
getDocument(){
       
$this->endElement();
       
$this->endElement();
       
$this->endElement();
       
$this->endDocument();
        return
$this->outputMemory();
    }
    public function
output(){
       
header('Content-type: text/xml');
        echo
$this->getDocument();
    }
}
?>

Example:

<?php
$xliff
= new XLIFFConstruct();
$xliff->addPhrase('source','target');
$xliff->addPhrase('add','añadir');
$xliff->addPhrase('open','abrir');
$xliff->addPhrase('change','cambiar');
$xliff->addPhrase('new','nuevo');
$xliff->addPhrase('save','guardar');

echo
$xliff->getDocument();

?>
darko at uvcms dot com 22-Feb-2010 07:30
setElement in the previous example does exactly the same thing as already existing writeElement.
massimo71 19-Feb-2009 02:24
I had a feature to the XmlConstruct class by Alexandre Aprica. Now you can use nested array to generate nested xml elements.

<?php
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 => $element){
          if(
is_array($element)){
           
$this->startElement($index);
           
$this->fromArray($element);
           
$this->endElement();
          }
          else
           
$this->setElement($index, $element);
         
        }
      }
    }

   
/**
     * 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();
    }
  

}

Example:

$contents = array(
 
'page_title' => 'Generate a XHTML page from XML+XSLT files',
 
'welcome_msg' => 'Simple XHTML document from XML+XSLT files!',
 
'prova' => array(
   
"gino" => array(
     
"innergino" => "gino inner value"
   
),
   
"filo" => "filodata"
 
),
);

$XmlConstruct = new XmlConstruct('root');
$XmlConstruct->fromArray($contents);
$XmlConstruct->output();
?>
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:

<?php header("Content-type: text/xml"); ?>
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>

 
show source | credits | sitemap | contact | advertising | mirror sites