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. xmlwriter 関数

導入

xmlwriter 拡張モジュールです。 現在マニュアルに記述されているのは、関数のプロトタイプ定義のみです。

要件

To be written. For example what external libraries are required

リソース型

Type of resource types (link id, etc.) this extension returns.

リソース型は定義されていません。

目次
xmlwriter_end_attribute -- 属性を終了する - エラー時に FALSE を返す
xmlwriter_end_cdata -- 現在の CDATA を終了する - エラー時に FALSE を返す
xmlwriter_end_comment -- コメントの終了部を作成する - エラー時に FALSE を返す
xmlwriter_end_document -- 現在のドキュメントを終了する - エラー時に FALSE を返す
xmlwriter_end_dtd_attlist -- 現在の DTD 属性リストを終了する - エラー時に FALSE を返す
xmlwriter_end_dtd_element -- 現在の DTD 要素を終了する - エラー時に FALSE を返す
xmlwriter_end_dtd_entity -- 現在の DTD エンティティを終了する - エラー時に FALSE を返す
xmlwriter_end_dtd -- 現在の DTD を終了する - エラー時に FALSE を返す
xmlwriter_end_element -- 現在の要素を終了する - エラー時に FALSE を返す
xmlwriter_end_pi -- 現在の PI (処理命令) を終了する - エラー時に FALSE を返す
xmlwriter_flush -- 現在のバッファを出力する
xmlwriter_full_end_element -- 現在の要素を終了する - エラー時に FALSE を返す
xmlwriter_open_memory -- 文字列としてメモリに出力するための新しい xmlwriter を作成する
xmlwriter_open_uri -- ソース URI を指定して新しい xmlwriter を作成する
xmlwriter_output_memory -- 現在のバッファを文字列として出力する
xmlwriter_set_indent_string -- 字下げに使用する文字列を設定する - エラー時に FALSE を返す
xmlwriter_set_indent -- 字下げの on/off を切り替える - エラー時に FALSE を返す
xmlwriter_start_attribute_ns -- 名前空間つきの属性を開始する - エラー時に FALSE を返す
xmlwriter_start_attribute -- 属性を開始する - エラー時に FALSE を返す
xmlwriter_start_cdata -- CDATA の開始タグを作成する - エラー時に FALSE を返す
xmlwriter_start_comment -- コメントを開始する - エラー時に FALSE を返す
xmlwriter_start_document -- ドキュメントタグを作成する - エラー時に FALSE を返す
xmlwriter_start_dtd_attlist -- DTD 属性リストを開始する - エラー時に FALSE を返す
xmlwriter_start_dtd_element -- DTD 要素を開始する - エラー時に FALSE を返す
xmlwriter_start_dtd_entity -- DTD エンティティを開始する - エラー時に FALSE を返す
xmlwriter_start_dtd -- DTD の開始タグを作成する - エラー時に FALSE を返す
xmlwriter_start_element_ns -- 名前空間つき要素の開始タグを作成する - エラー時に FALSE を返す
xmlwriter_start_element -- 要素の開始タグを作成する - エラー時に FALSE を返す
xmlwriter_start_pi -- PI (処理命令) の開始タグを作成する - エラー時に FALSE を返す
xmlwriter_text -- テキストを書き込む - エラー時に FALSE を返す
xmlwriter_write_attribute_ns -- 完全な名前空間つき属性を書き込む - エラー時に FALSE を返す
xmlwriter_write_attribute -- 完全な属性を書き込む - エラー時に FALSE を返す
xmlwriter_write_cdata -- 完全な CDATA タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_comment -- 完全なコメントタグを書き込む - エラー時に FALSE を返す
xmlwriter_write_dtd_attlist -- 完全な DTD 属性リストタグを書き込む - エラー時に FALSE を返す
xmlwriter_write_dtd_element -- 完全な DTD 要素タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_dtd_entity -- 完全な DTD エンティティタグを書き込む - エラー時に FALSE を返す
xmlwriter_write_dtd -- 完全な DTD タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_element_ns -- 完全な名前空間つき要素タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_element -- 完全な要素タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_pi -- 完全な PI (処理命令) タグを書き込む - エラー時に FALSE を返す
xmlwriter_write_raw -- テキストを書き込む - エラー時に FALSE を返す


xmlwriter_end_attribute> <XMLReader->XML()
[edit] Last updated: Mon, 01 Nov 2010
 
add a note add a note User Contributed Notes 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