使用PHP将XML转换为数组

convert XML to array with PHP

本问题已经有最佳答案,请猛点这里访问。

我有一个具有以下信息的xml;

1
2
3
4
5
<item>
<site>Cambodia</site>
<city>Phnom Penh</city>
<wyn>21000</code >
</item>

我想从这个xml中获取所有信息,并将它们输入到数组$ data中,然后像这样一个接一个地回显它们;地点=柬埔寨;城市=金边;代码= 21000;但我不知道该怎么做。请帮助我解决此问题。


您应该能够将其转换为数组。

1
2
$data = new SimpleXMLElement($xml);
$array = (array) $data;

您将通过以下代码获得所需的输出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 $xml = '
    <item>
    <site>Cambodia</site>
    <city>Phnom Penh</city>
    <wyn>21000</code >
    </item>'
;


    $data = new SimpleXmlElement($xml);
     $array = (array) $data;

     foreach($array as $key => $value){
     echo $key .'='. $value.'; ';  ///output:- site = Cambodia; city = Phnom Penh; code = 21000;
     }

这可能会成功!

使用xml_parse_into_struct —将XML数据解析为数组结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
     $simple ="<item><site>Cambodia</site><city>Phnom Penh</city><wyn>21000</wyn>           </item>";

     $p = xml_parser_create();
     xml_parse_into_struct($p, $simple, $vals, $index);
     xml_parser_free($p);
     echo"Index array\
"
;
     print_r($index);
     echo"\
Vals array\
"
;
     print_r($vals);
?>

或SimpleXMLElement

1
2
3
4
5
6
$xml = new SimpleXMLElement($xmlString);

echo $xml->item->site;

$userArray = (array) $xml;
print_r($userArray)