Generating XML from PHP : SAX : XML PHP Source Code


PHP Source Code » XML » SAX »

 

Generating XML from PHP


Attention !!! :
<>

Thats because php already has a built in php class called xmlwriter, to fix it all you need to do is rename it.
<?php

// Simon Willison, 16th April 2003
// Based on Lars Marius Garshol's Python XMLWriter class
// See http://www.xml.com/pub/a/2003/04/09/py-xml.html

class XmlWriter {
    var 
$xml;
    var 
$indent;
    var 
$stack = array();
    function 
XmlWriter($indent '  ') {
        
$this->indent $indent;
        
$this->xml '<?xml version="1.0" encoding="utf-8"?>'."\n";
    }
    function 
_indent() {
        for (
$i 0$j count($this->stack); $i $j$i++) {
            
$this->xml .= $this->indent;
        }
    }
    function 
push($element$attributes = array()) {
        
$this->_indent();
        
$this->xml .= '<'.$element;
        foreach (
$attributes as $key => $value) {
            
$this->xml .= ' '.$key.'="'.htmlentities($value).'"';
        }
        
$this->xml .= ">\n";
        
$this->stack[] = $element;
    }
    function 
element($element$content$attributes = array()) {
        
$this->_indent();
        
$this->xml .= '<'.$element;
        foreach (
$attributes as $key => $value) {
            
$this->xml .= ' '.$key.'="'.htmlentities($value).'"';
        }
        
$this->xml .= '>'.htmlentities($content).'</'.$element.'>'."\n";
    }
    function 
emptyelement($element$attributes = array()) {
        
$this->_indent();
        
$this->xml .= '<'.$element;
        foreach (
$attributes as $key => $value) {
            
$this->xml .= ' '.$key.'="'.htmlentities($value).'"';
        }
        
$this->xml .= " />\n";
    }
    function 
pop() {
        
$element array_pop($this->stack);
        
$this->_indent();
        
$this->xml .= "</$element>\n";
    }
    function 
getXml() {
        return 
$this->xml;
    }
}

/* Test

$xml = new XmlWriter();
$array = array(
    array('monkey', 'banana', 'Jim'),
    array('hamster', 'apples', 'Kola'),
    array('turtle', 'beans', 'Berty'),
);

$xml->push('zoo');
foreach ($array as $animal) {
    $xml->push('animal', array('species' => $animal[0]));
    $xml->element('name', $animal[2]);
    $xml->element('food', $animal[1]);
    $xml->pop();
}
$xml->pop();

print $xml->getXml();

*/
?>  


HTML code for linking to this page:

Follow Navioo On Twitter

PHP Source Code

 Navioo XML
» SAX