您的位置:首页 > 编程语言 > PHP开发

PHP操作XML的经验

2013-03-28 21:59 274 查看
最近接了一个项目,很多功能需要以xml为接口来回进行一系列的操作。现在附下我的一点经验。情况一:当是你收到xml信息进行处理的时候,可以用以下步骤 ://输出严格的xml格式header ( 'Content-type: text/xml' );echo pack ( "C3" , 0xef, 0xbb, 0xbf );//通过php输入流得到数据$userinfo =
file_get_contents('php://input');//将得到的字符串数据对象化$xml_obj =
simplexml_load_string($userinfo);$xml_arr = xmltoarray($xml_obj);然后使用下面函数进行处理。function xmltoarray($object, &$tmparr=array())
{if
(is_object($object)) {$tmparr =
get_object_vars($object);}foreach
($tmparr as $k => $v) {if
(is_array($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} elseif
(is_object($v)) {$tmparr[$k]
= xmltoarray($v, $tmparr[$k]);} else
{$tmparr[$k]
= $v;}}return
$tmparr;}情况二:我以curl发送请求时,他们返回的xml不能进行对象化,所以我在w3c找到了


xml_parse_into_struct() 函数

他可以将传回来的信息序列化成数组。
<?php

// xml 文件

$xmlfile = 'test.xml';

$xmlparser = xml_parser_create();

// 打开文件并读取数据

$fp = fopen($xmlfile, 'r');

$xmldata = fread($fp, filesize($xmlfile));

[code]xml_parse_into_struct($xmlparser,$xmldata,$values);
xml_parser_free($xmlparser);print_r($values);?>
[/code]

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: