php로 xml 생성 클래스(예제포함)

http://simonwillison.net/2003/Apr/29/xmlWriter/

언어 : php
  1. <?php
  2.  
  3. // Simon Willison, 16th April 2003
  4. // Based on Lars Marius Garshol's Python XMLWriter class
  5. // See http://www.xml.com/pub/a/2003/04/09/py-xml.html
  6.  
  7. class XmlWriter {
  8.     var $xml;
  9.     var $indent;
  10.     var $stack = array();
  11.     function XmlWriter($indent = '  ') {
  12.         $this->indent = $indent;
  13.         $this->xml = '<?xml version="1.0" encoding="utf-8"?>'."\n";
  14.     }
  15.     function _indent() {
  16.         for ($i = 0, $j = count($this->stack); $i < $j; $i++) {
  17.             $this->xml .= $this->indent;
  18.         }
  19.     }
  20.     function push($element, $attributes = array()) {
  21.         $this->_indent();
  22.         $this->xml .= '<'.$element;
  23.         foreach ($attributes as $key => $value) {
  24.             $this->xml .= ' '.$key.'="'.htmlentities($value).'"';
  25.         }
  26.         $this->xml .= ">\n";
  27.         $this->stack[] = $element;
  28.     }
  29.     function element($element, $content, $attributes = array()) {
  30.         $this->_indent();
  31.         $this->xml .= '<'.$element;
  32.         foreach ($attributes as $key => $value) {
  33.             $this->xml .= ' '.$key.'="'.htmlentities($value).'"';
  34.         }
  35.         $this->xml .= '>'.htmlentities($content).'</'.$element.'>'."\n";
  36.     }
  37.     function emptyelement($element, $attributes = array()) {
  38.         $this->_indent();
  39.         $this->xml .= '<'.$element;
  40.         foreach ($attributes as $key => $value) {
  41.             $this->xml .= ' '.$key.'="'.htmlentities($value).'"';
  42.         }
  43.         $this->xml .= " />\n";
  44.     }
  45.     function pop() {
  46.         $element = array_pop($this->stack);
  47.         $this->_indent();
  48.         $this->xml .= "</$element>\n";
  49.     }
  50.     function getXml() {
  51.         return $this->xml;
  52.     }
  53. }
  54.  
  55.  
  56.  
  57. $xml = new XmlWriter();
  58. $array = array(
  59.     array('monkey', 'banana', 'Jim'),
  60.     array('hamster', 'apples', 'Kola'),
  61.     array('turtle', 'beans', 'Berty'),
  62. );
  63.  
  64. $xml->push('zoo');
  65. foreach ($array as $animal) {
  66.     $xml->push('animal', array('species' => $animal[0]));
  67.     $xml->element('food', $animal[1]);
  68.     $xml->element('name', $animal[2]);
  69.     $xml->pop();
  70. }
  71. $xml->pop();
  72.  
  73. print $xml->getXml();
  74.  
  75.  
  76. ?> 
  77.  
  78.  

xml 결과 확인
http://www.joon.pe.kr/test/xmlwriter.php
이올린에 북마크하기(0) 이올린에 추천하기(0)
top
Tag , ,


http://www.joon.pe.kr/blog/trackback/250

Tracked from 이것저것 연구소 at 2009/01/09 10:09  Delete
php로 XML을 생성 하는 예제 입니다. http://www.joon.pe.kr 에서 업어 왔습니다. 원 링크는 아래에 있습니다. http://simonwillison.net/2003/Apr/29/xmlWriter/ 언어 : php <?php // Simon Willison, 16th April 2003 // Based on Lars ..
Commented by 11 at 2010/10/20 18:39  Reply|Edit|Delete
안되는데? 왜그런지 아시나요?
Commented by 에프딘 at 2011/03/29 10:22  Reply|Edit|Delete
XmlWriter라는 클래스가 php에 내부적으로 정의 되어있어서..
재정의할수 없다는 에러가 뜨네요..
저 당시의 php 버전이 업데이트 되면서 XMLWriter라는 클래스가 만들어진듯..
앞에 _(underbar)를 넣으니까 되는군요.
http://www.php.net/manual/en/book.xmlwriter.php
여기서 php내부 xmlwriter 에 대해서 알수 있습니다 ㅇ_ㅇ


<< Prev   1   ... 95   96   97   98   99   100   101   102   103   ... 336   Next >>