注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

php 王建

php之路

 
 
 

日志

 
 

php生成xml 读取xml  

2013-04-02 22:11:04|  分类: php类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

生成xml代码

<?php
header("Content-Type:text/html;charset=utf-8");
$dom=new DomDocument('1.0','utf-8'); 
//在根节点创建 departs标签
$root = $dom->createElement('root');
$dom->appendChild($root);  //创建一个根节点

//在 root标签下创建 子标签
for($i=0;$i<10;$i++){
	$data = $dom->createElement('data');
	$root->appendChild($data);
//在 data标签下创建 子标签

	$childid = $dom->createElement('childid');//创建一个childid标签
	$serial_no_value = $dom->createTextNode($i);//设置值
	$childid->appendChild($serial_no_value);//把值添加进去
	$data->appendChild($childid);
	
	$shortname = $dom->createElement('shortname');//创建一个shortname标签
	$new_short_name = $dom->createTextNode($i."游戏测试");//设置值
	$shortname->appendChild($new_short_name);//把值添加进去
	$data->appendChild($shortname);
}
//输出 XML数据
 $dom->save("2.xml");
//主要是创建一个节点之后,在此节点之后添加元素即可

读取xml主要是用到了simplexml_load_file此方法,把一个xml文件读取之后,返回值是一个对象

<?php
$xml = simplexml_load_file("2.xml");//创建一个SimpleXML对象
//echo $xml->asXML();//将该对象以标准的xml形式输出
$newarray = objectToArray($xml);
echo '<pre>';
print_r($newarray);
echo '<hr>';
echo '<pre>';
print_r(arrayToObject($newarray));
echo '<hr>';
exit;
$newarray = array();
foreach ($xml->data as $data1){
	$newarray[] = array('child_id'=>$data1->childid,'shortname'=>$data1->shortname );
}
echo '<pre>';
print_r($newarray);

function objectToArray($d) {  
    if (is_object($d)) {  
        // Gets the properties of the given object  
        // with get_object_vars function  
        $d = get_object_vars($d);  
    }  
  
    if (is_array($d)) {  
        /* 
        * Return array converted to object 
        * Using __FUNCTION__ (Magic constant) 
        * for recursive call 
        */  
        return array_map(__FUNCTION__, $d);  
    }else {  
        // Return array  
        return $d;  
    }  
}


/** 
 * 将多维数组转换为对象 
 * 
 **/  
function arrayToObject($d) {  
    if (is_array($d)) {  
        /* 
        * Return array converted to object 
        * Using __FUNCTION__ (Magic constant) 
        * for recursive call 
        */  
        return (object) array_map(__FUNCTION__, $d);  
    }  
    else {  
        // Return object  
        return $d;  
    }  
}  
在创建xml文件的时候有时候中文会显示不出来,解决办法是在创建对象的时候指定编码即可
  评论这张
 
阅读(154)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018