问一个关于xml转php 数组的有关问题
问一个关于xml转php 数组的问题
我现在要接收一个xml的内容,不是文件
接收的文件内容如下格式
<?xml version="1.0" encoding="utf-8"?><pReq><ax>0000</ax><at>ax0000111222333442</at><ab>12345</ab><an>测试</an><ao>4021000028853283</ao><ad>20130828</ad><pMemo1>备注1</pMemo1><pMemo2>备注2</pMemo2><pMemo3>备注3</pMemo3></pReq>
怎么直接把这段代码转换为php数组,这个不是个文件,是个变量
------解决方案--------------------
找一个xml_to_array的函数 比如
http://www.cnblogs.com/heiing/archive/2009/12/31/1637015.html
然后使用它
我现在要接收一个xml的内容,不是文件
接收的文件内容如下格式
<?xml version="1.0" encoding="utf-8"?><pReq><ax>0000</ax><at>ax0000111222333442</at><ab>12345</ab><an>测试</an><ao>4021000028853283</ao><ad>20130828</ad><pMemo1>备注1</pMemo1><pMemo2>备注2</pMemo2><pMemo3>备注3</pMemo3></pReq>
怎么直接把这段代码转换为php数组,这个不是个文件,是个变量
xml
php
------解决方案--------------------
找一个xml_to_array的函数 比如
http://www.cnblogs.com/heiing/archive/2009/12/31/1637015.html
然后使用它
function xml_to_array( $xml )
{
$reg = "/<(\\w+)[^>]*?>([\\x00-\\xFF]*?)<\\/\\1>/";
if(preg_match_all($reg, $xml, $matches))
{
$count = count($matches[0]);
$arr = array();
for($i = 0; $i < $count; $i++)
{
$key = $matches[1][$i];
$val = xml_to_array( $matches[2][$i] ); // 递归
if(array_key_exists($key, $arr))
{
if(is_array($arr[$key]))
{
if(!array_key_exists(0,$arr[$key]))
{
$arr[$key] = array($arr[$key]);