ホームページ >バックエンド開発 >PHPチュートリアル >XML から PHP 配列への変換について質問する
xml php
我现在要接收一个xml的内容,不是文件在线等,希望能有人速度帮忙解决了
找一个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]); } }else{ $arr[$key] = array($arr[$key]); } $arr[$key][] = $val; }else{ $arr[$key] = $val; } } return $arr; }else{ return $xml; }}// Xml 转 数组, 不包括根键function xmltoarray( $xml ){ $arr = xml_to_array($xml); $key = array_keys($arr); return $arr[$key[0]];}$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>';var_export(xmltoarray($xml));
array ( 'ax' => '0000', 'at' => 'ax0000111222333442', 'ab' => '12345', 'an' => '测试', 'ao' => '4021000028853283', 'ad' => '20130828', 'pMemo1' => '备注1', 'pMemo2' => '备注2', 'pMemo3' => '备注3',)
谢谢了,解决!