亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在php中將XML轉換為數組?

如何在php中將XML轉換為數組?

PHP
catspeake 2019-06-26 13:26:02
如何在php中將XML轉換為數組?我想將下面的XML轉換為PHP數組。對我怎么做有什么建議嗎?<aaaa Version="1.0">    <bbb>      <cccc>        <dddd Id="id:pass" />        <eeee name="hearaman" age="24" />      </cccc>    </bbb></aaaa>
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

放輕松!

$xml = simplexml_load_string($xmlstring, "SimpleXMLElement", LIBXML_NOCDATA);$json = json_encode($xml);$array = json_decode($json,TRUE);


查看完整回答
反對 回復 2019-06-26
?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

轉換XML字符串($buffer)到一個簡化的數組中,忽略屬性并對具有相同名稱的子元素進行分組:

function XML2Array(SimpleXMLElement $parent){
    $array = array();

    foreach ($parent as $name => $element) {
        ($node = & $array[$name])
            && (1 === count($node) ? $node = array($node) : 1)
            && $node = & $node[];

        $node = $element->count() ? XML2Array($element) : trim($element);
    }

    return $array;}$xml   = simplexml_load_string($buffer);$array = XML2Array($xml);$array = array($xml->getName() => $array);

結果:

Array(
    [aaaa] => Array
        (
            [bbb] => Array
                (
                    [cccc] => Array
                        (
                            [dddd] => 
                            [eeee] => 
                        )

                )

        ))

如果您還想擁有這些屬性,則可以通過SimpleXMLElement的JSON編碼/解碼獲得這些屬性。這通常是最簡單的快速“n”臟解決方案:

$xml   = simplexml_load_string($buffer);$array = json_decode(json_encode((array) $xml), true);$array = array($xml->getName() => $array);

結果:

Array(
    [aaaa] => Array
        (
            [@attributes] => Array
                (
                    [Version] => 1.0
                )

            [bbb] => Array
                (
                    [cccc] => Array
                        (
                            [dddd] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [Id] => id:pass
                                        )

                                )

                            [eeee] => Array
                                (
                                    [@attributes] => Array
                                        (
                                            [name] => hearaman                                            [age] => 24
                                        )

                                )

                        )

                )

        ))

請注意,所有這些方法只在XML文檔的命名空間中工作。


查看完整回答
反對 回復 2019-06-26
  • 3 回答
  • 0 關注
  • 712 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號