Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17685
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Class para criar XML XMLWriter

10-11-2011 14:30

Essa é uma class usada para criar de forma fácil arquivos XML.

Para usar a class, você vai precisar desse arquivo: xmlwriter.php

fonte: http://php.net/manual/pt_BR/ref.xmlwriter.php
<?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(); } } ?>

Como exemplo, use o código

<?php include("xmlwriter.php"); $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(); ?>

Se você tiver problema com acentuação no seu texto ao usar o XMLWriter, você deve fazer o seguinte:

Trocar
echo $this->getDocument();

Por

echo utf8_encode($this->getDocument());

Na class xmlwriter.php
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado