首頁 後端開發 php教程 xml转换成数组的有关问题

xml转换成数组的有关问题

Jun 13, 2016 pm 01:37 PM
gt lt quot records text

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] =&gt; Array
        (
            [errMsg] =&gt; 
            [retValue] =&gt; true
        )
    [records] =&gt; Array
        (
            [productno] =&gt;000321
            [billno] =&gt;
            [orderno] =&gt;D004410439
            [out_trade_no] =&gt; 100001
            [plcprem] =&gt;0.0
            [orderprem] =&gt;50.0
            [commision] =&gt;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=&gt;$nodes) {
  foreach($nodes as $k=&gt;$v) {
    $t = (array)$v-&gt;attributes()-&gt;text;
    $r[$name][$k] = $t[0];
  }
}
print_r($r);
<br><font color="#e78608">------解决方案--------------------</font><br>
登入後複製
探讨
PHP code
$s =









……
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為GT3 Pro和GT4的差異是什麼? 華為GT3 Pro和GT4的差異是什麼? Dec 29, 2023 pm 02:27 PM

華為GT3 Pro和GT4的差異是什麼?

修復:截圖工具在 Windows 11 中不起作用 修復:截圖工具在 Windows 11 中不起作用 Aug 24, 2023 am 09:48 AM

修復:截圖工具在 Windows 11 中不起作用

如何修復無法連線到iPhone上的App Store錯誤 如何修復無法連線到iPhone上的App Store錯誤 Jul 29, 2023 am 08:22 AM

如何修復無法連線到iPhone上的App Store錯誤

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

如何在Java 14中使用Records類別來建立可變資料對象 如何在Java 14中使用Records類別來建立可變資料對象 Jul 30, 2023 pm 08:55 PM

如何在Java 14中使用Records類別來建立可變資料對象

watch4pro好還是gt好 watch4pro好還是gt好 Sep 26, 2023 pm 02:45 PM

watch4pro好還是gt好

Microsoft正在推出Windows 11 23H2版本到有Copilot的發布預覽頻道 Microsoft正在推出Windows 11 23H2版本到有Copilot的發布預覽頻道 Sep 28, 2023 pm 07:17 PM

Microsoft正在推出Windows 11 23H2版本到有Copilot的發布預覽頻道

如何使用 iPadOS 17.4 優化 iPad 電池壽命 如何使用 iPadOS 17.4 優化 iPad 電池壽命 Mar 21, 2024 pm 10:31 PM

如何使用 iPadOS 17.4 優化 iPad 電池壽命

See all articles