> 백엔드 개발 > PHP 튜토리얼 > xml转换成数组的有关问题

xml转换成数组的有关问题

WBOY
풀어 주다: 2016-06-13 13:37:28
원래의
707명이 탐색했습니다.

xml转换成数组的问题
现有如下xml:

XML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<root>
<rows>
<errmsg text=""></errmsg>
<retvalue text="true"></retvalue>
</rows>
<records>
<productno text="000321"></productno>
<billno text=""></billno>
<orderno text="D004410439"></orderno>
<out_trade_no text="100001"></out_trade_no>
<plcprem text="0.0"></plcprem>
<orderprem text="50.0"></orderprem>
<commision text="0.0"></commision>
</records>
....
<root>

</root></root>
로그인 후 복사

xml深度不确定但每个节点都有text属性,想转换成如下数组,有什么好办法吗
PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
Array
(
    [rows] => Array
        (
            [errMsg] => 
            [retValue] => true
        )
    [records] => Array
        (
            [productno] =>000321
            [billno] =>
            [orderno] =>D004410439
            [out_trade_no] => 100001
            [plcprem] =>0.0
            [orderprem] =>50.0
            [commision] =>0.0
        )
        .....
)


로그인 후 복사


------解决方案--------------------
看看这个

http://weblog.thomassmart.com/2008/09/php-function-xml2array/
------解决方案--------------------
PHP code
$s =
<rows>
<errmsg text=""></errmsg>
<retvalue text="true"></retvalue>
</rows>
<records>
<productno text="000321"></productno>
<billno text=""></billno>
<orderno text="D004410439"></orderno>
<out_trade_no text="100001"></out_trade_no>
<plcprem text="0.0"></plcprem>
<orderprem text="50.0"></orderprem>
<commision text="0.0"></commision>
</records>

XML;
$obj = simplexml_load_string($s);
$r = array();
foreach($obj as $name=>$nodes) {
  foreach($nodes as $k=>$v) {
    $t = (array)$v->attributes()->text;
    $r[$name][$k] = $t[0];
  }
}
print_r($r);
<br><font color="#e78608">------解决方案--------------------</font><br>
로그인 후 복사
探讨
PHP code
$s =









……
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿