XML处理---H_xml.php

  1 <?php
2 /*************************************
3 * XML处理---H_xml.php
4 * 创建人: huang_xiang
5 * 创建时间:2009-6-29 9:40
6 * 更新时间:2009-6-29 9:41
7 * Email:yin273642232@163.com QQ:273642232
8 *************************************/
9 /*************************************
10 实例代码
11 include_once("H_xml.php"); //引入文件
12 $H_xml = new H_xml(); //产生对象
13 header("Content-Type:text/html;charset=gb2312");
14 header("Expires: ".date("D,d M Y H:i:s")." GMT");
15 header("Cache-Control: no-cache, must-revali date");
16 header("Pragma: no-cache");
17 $H_param = array(
18 array('statg' => array(),'endtg' => array(),'tagnm' => 'rss','endfg' => false,'ensfg' => true,'attri' => array('attfg' => true,'attvl' => array('xmlns:atom' => 'http://www.w3.org/2005/Atom','xmlns:cf' => 'http://www.microsoft.com/schemas/rss/core/2005','xmlns:dc' => 'http://purl.org/dc/elements/1.1/','xmlns:slash' => 'http://purl.org/rss/1.0/modules/slash/','xmlns:sy' => 'http://purl.org/rss/1.0/modules/syndication/')),'value' => array('valfg' => false,'value' => '','cdata' => false)),
19 array('statg' => array(),'endtg' => array(),'tagnm' => 'channel','endfg' => false,'ensfg' => true,'attri' => array('attfg' => true,'attvl' => array('xmlns:cfi' => 'http://www.microsoft.com/schemas/rss/core/2005/internal','cfi:lastdownloaderror' => 'idtest','xmlns:atom' => 'None')),'value' => array('valfg' => false,'value' => '','cdata' => false)),
20 array('statg' => array(),'endtg' => array(),'tagnm' => 'title','endfg' => true,'ensfg' => false,'attri' => array('attfg' => true,'attvl' => array('cf:type' => 'text')),'value' => array('valfg' => true,'value' => '叶绿辉香-信息技术文章','cdata' => true)),
21 array('statg' => array(),'endtg' => array(),'tagnm' => 'image','endfg' => false,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => false,'value' => '','cdata' => false)),
22 array('statg' => array(),'endtg' => array(),'tagnm' => 'title','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => '叶绿辉香-信息技术文章','cdata' => true)),
23 array('statg' => array(),'endtg' => array(),'tagnm' => 'link','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'http://www.91ylhx.cn','cdata' => false)),
24 array('statg' => array(),'endtg' => array('image'),'tagnm' => 'url','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'http://www.91ylhx.cn/image/logo.gif','cdata' => false)),
25 array('statg' => array(),'endtg' => array(),'tagnm' => 'link','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'http://www.e9151.com/','cdata' => true)),
26 array('statg' => array(),'endtg' => array(),'tagnm' => 'description','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => '叶绿辉香--RSS订阅服务','cdata' => true)),
27 array('statg' => array(),'endtg' => array(),'tagnm' => 'language','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'en_us','cdata' => false)),
28 array('statg' => array(),'endtg' => array(),'tagnm' => 'pubdate','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => date("D, d M Y H:i:s").' GMT','cdata' => false)),
29 array('statg' => array(),'endtg' => array(),'tagnm' => 'docs','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'http://www.91ylhx.cn','cdata' => false)),
30 array('statg' => array(),'endtg' => array(),'tagnm' => 'copyright','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'Copyright (c) 2009 - 2010 叶绿辉香. All Rights Reserved.','cdata' => true)),
31 array('statg' => array(),'endtg' => array(),'tagnm' => 'item','endfg' => false,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => false,'value' => '','cdata' => false)),
32 array('statg' => array(),'endtg' => array(),'tagnm' => 'title','endfg' => true,'ensfg' => false,'attri' => array('attfg' => true,'attvl' => array('xmlns:cf' => 'http://www.microsoft.com/schemas/rss/core/2005','cf:type' => 'text')),'value' => array('valfg' => true,'value' => '切割图像及创建图像轮换','cdata' => true)),
33 array('statg' => array(),'endtg' => array(),'tagnm' => 'link','endfg' => true,'ensfg' => false,'attri' => array('attfg' => false,'attvl' => array()),'value' => array('valfg' => true,'value' => 'http://91ylhx.cn/vwnew.php?id=120','cdata' => true)),
34 array('statg' => array(),'endtg' => array('item'),'tagnm' => 'description','endfg' => true,'ensfg' => false,'attri' => array('attfg' => true,'attvl' => array('xmlns:cf' => 'http://www.microsoft.com/schemas/rss/core/2005','cf:type' => 'html')),'value' => array('valfg' => true,'value' => '1. 打开“Feature_09.png”文件。 ','cdata' => true))
35 );
36
37 $H_xml -> H_start('gb2312');
38 $H_xml -> H_style(array('attri' => array('attfg' => true,'attvl' => array('type' => 'text/xsl','title' => 'test-xsl','href' => 'show_new_job.xsl','media' => 'all',))));
39 foreach($H_param as $H_val) $H_xml -> H_tags($H_val);
40 $H_xml -> H_end();
41 echo $H_xml -> H_xmls;
42 *************************************/
43 //Start Class
44 class H_xml{
45 public $H_debug = false;
46 public $H_desce; //描述
47 public $H_xmls=''; //xml内容
48 public $H_tgary = array(); //结束标记
49
50 public function __construct(){
51 //当实例化一个对象的时候,这个对象的这个方法首先被调用
52 return '';
53 }
54 public function __destruct(){
55 //当删除一个对象或对象操作终止的时候,调用该方法
56 return '';
57 }
58 public function __get($key){
59 //当试图读取一个并不存在的属性的时候被调用
60 return '['.$key.'] Variable not find';
61 }
62 public function __set($key,$val){
63 //当试图向一个并不存在的属性写入值的时候被调用
64 return '['.$key.'] Variable not find';
65 }
66 public function __call($key,$args){
67 //当试图调用一个对象并不存在的方法时,调用该方法
68 return '['.$key.'] Function not find';
69 }
70 public function __toString(){
71 //当打印一个对象的时候被调用
72 return $this -> H_desce();
73 }
74 public function __clone(){
75 //当对象被克隆时,被调用
76 return "clone";
77 }
78 public function H_desce(){
79 //返回描述
80 $this -> H_desce .= '类名:H_xml-XML处理;';
81 return $this -> H_desce;
82 }
83
84 public function H_tags($H_param = array('statg' => array(),'endtg' => array(),'tagnm' => '','endfg' => true,'ensfg' => true,'attri' => array('attfg' => true,'attvl' => array()),'value' => array('valfg' => true,'value' => '','cdata' => true))){
85 //设置 标签
86 $H_temps = '';
87 if($H_param['statg'] != '' && count($H_param['statg']) > 0) foreach($H_param['statg'] as $H_val){
88 $H_temps .= $this -> H_tagse(array('tagnm' => $H_val,'endfg' => false));
89 }
90 $H_temps .= '<'.$H_param['tagnm'];
91 if($H_param['attri']['attfg']){
92 if($H_param['attri']['attvl'] != '' && count($H_param['attri']['attvl']) > 0) foreach($H_param['attri']['attvl'] as $H_key => $H_val) $H_temps .= ' '.$H_key.'="'.$H_val.'"';
93 }
94 $H_temps .= '>';
95 if($H_param['value']['valfg']){
96 $H_temps .= $H_param['value']['cdata']?'<![CDATA['.$H_param['value']['value'].']]>':$H_param['value']['value'];
97 }
98 if($H_param['endfg']){
99 $H_temps .= $this -> H_tagse(array('tagnm' => $H_param['tagnm'],'endfg' => false));
100 }else{
101 $H_temps .= "\n";
102 if($H_param['ensfg']) $this -> H_tgary[] = $H_param['tagnm'];
103 }
104 if($H_param['endtg'] != '' && count($H_param['endtg']) > 0) foreach($H_param['endtg'] as $H_val){
105 $H_temps .= $this -> H_tagse(array('tagnm' => $H_val,'endfg' => false));
106 }
107 $this -> H_xmls .= $H_temps;
108 return $H_temps;
109 }
110 public function H_tagse($H_param = array('tagnm' => '','endfg' => false)){
111 //结束标签
112 $H_temps = '</'.$H_param['tagnm'].'>'."\n";
113 $this -> H_xmls .= $H_param['endfg'] ? $H_temps : '';
114 return $H_temps;
115 }
116
117 public function H_end(){
118 //设置 结束
119 $H_e = count($this -> H_tgary);
120 for(;$H_e > 0;$H_e--){
121 $this -> H_tagse(array('tagnm' => $this -> H_tgary[$H_e-1],'endfg' => true));
122 }
123 return $this -> H_xmls;
124 }
125 public function H_start($H_encoding='gb2312'){
126 //设置 开始
127 $H_temps = '<?xml version="1.0" encoding="'.$H_encoding.'" ?>'."\n";
128 $this -> H_xmls .= $H_temps;
129 return $H_temps;
130 }
131 public function H_style($H_param = array('attri' => array('attfg' => true,'attvl' => array()))){
132 $H_temps = '<?xml-stylesheet';
133 if($H_param['attri']['attfg']){
134 if($H_param['attri']['attvl'] != '' && count($H_param['attri']['attvl']) > 0) foreach($H_param['attri']['attvl'] as $H_key => $H_val) $H_temps .= ' '.$H_key.'="'.$H_val.'"';
135 }
136 $H_temps .= '?>'."\n";
137 $this -> H_xmls .= $H_temps;
138 return $H_temps;
139 }
140 }//End Class
141 ?>

 

posted @ 2012-01-17 15:38  祥辉  阅读(279)  评论(0编辑  收藏  举报