php操作xml类,php实现的xml操作类

本文实例讲述了php实现的xml操作类。分享给大家供大家参考,具体如下:

/*

使用方法:

$test=new xml();

$test->new_xml('test.xml');

$test->root('document');

$test->append_root_node('book');

$test->append_child_node('author','linage');

$test->append_child_node('page',100);

$test->append_child_node('money','35 RMB');

$test->append_root_node_end();

$test->append_root_node('book','name','The"Web"Servers');

$test->append_child_node('a u t ho"r','li n a g e');

$test->append_child_node('page',100);

$test->append_child_node('money','35 RMB');

$test->append_root_node_end();

$test->display();

$test->save();

生成的xml结果:

linage

100

35 RMB

li n a g e

100

35 RMB

*/

class xml{

var $version;

var $encoding;

var $start;

var $end;

var $filename;

var $xml_document;

var $root_start;

var $root_end;

var $rss_start;

var $rss_end;

function xml($ver='1.0',$encoding='GB2312'){

$this->version="<?xml version=/"{$ver}/" encoding=/"{$encoding}/" standalone=/"yes/" ?>";

$this->rss_start="";

$this->rss_end="";

}

function new_xml($filename){

$this->filename=$filename;

return true;

}

function root($element){

$element=$this->filter($element);

if(isset($this->start) and isset($this->end)){

exit("error:Only one top level element is allowed in an XML document./r/n");

}else{

$this->start="";

$this->end="$element>";

$this->xml_document=$this->version."/n".$this->rss_start."/n".$this->start."/n";

return true;

}

}

function append_root_node($title,$property=null,$pro_val=null){

$title=$this->filter($title);

$property=$this->filter($property);

$pro_val=$this->filter($pro_val);

$property!=null?$pro_str=" $property=/"$pro_val/"":$property=null;

$contents="/n";

$this->xml_document.=$contents;

$this->root_end="$title>";

return true;

}

function append_root_node_end(){

$this->xml_document.=$this->root_end."/n";

return true;

}

function append_child_node($title='undefined',$contents='undefined',$property=null,$pro_val=null,$cddate=false){

isset($property)?$pro_str=" $property=/"$pro_val/"":$property=null;

$title=$this->filter($title);

$contents=$this->filter($contents,false);

$property=$this->filter($property);

$pro_val=$this->filter($pro_val);

$cddate===false?$cddate=false:$cddate=true;

if($cddate){

$contents="$title>/n";

}else{

$contents="$contents$title>";

}

$this->xml_document.=$contents."/n";

return true;

}

function display(){

header("Content-type: text/xml");

$xml=$this->xml_document.$this->end."/n".$this->rss_end;

echo $xml;

//return true;

}

function filter($sring,$replace_null=true){

$filter[]='"';

$filter[]="//";

$filter[]="/n";

$filter[]="/r";

$filter[]="/t";

$replace_null===true?$filter[]=" ":$replace_null=false;

foreach ($filter as $val){

$sring=str_replace($val,'',$sring);

}

return $sring;

}

function encode(){

//you can add the convert encode function here or add other class to do that

}

function save(){

$this->xml_document=$this->xml_document.$this->end."/n".$this->rss_end;

$handle=fopen($this->filename,'wb+');

$result=fwrite($handle,$this->xml_document);

fclose($handle);

if($result){

return true;

}else{

echo "error:can't write to files,maybe the access denied.try to chmod 777 the directory?";

return false;

}

}

}

更多关于PHP操作xml相关内容感兴趣的读者可查看本站专题:《PHP针对XML文件操作技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值