本文实例讲述了php实现xml转换数组的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?php
$info = '<?xml version= "1.0" encoding= "utf-8" ?>
<data>
<GeocoderSearchResponse>
<status>OK</status>
<result>
<location>
<lat>39.94921</lat>
<lng>116.463619</lng>
</location>
<precise>0</precise>
<confidence>50</confidence>
<level>脚本</level>
</result>
</GeocoderSearchResponse>
<GeocoderSearchResponse>
<status>OK</status>
<result>
<location>
<lat>39</lat>
<lng>116</lng>
</location>
<precise>0</precise>
<confidence>50</confidence>
<level>脚本123</level>
</result>
</GeocoderSearchResponse>
</data>';
$xml = simplexml_load_string( $info );
function xml2array( $xmlobject ) {
if ( $xmlobject ) {
foreach (( array ) $xmlobject as $k => $v ) {
$data [ $k ] = ! is_string ( $v ) ? xml2array( $v ) : $v ;
}
return $data ;
}
}
$data = xml2array( $xml );
var_dump( $data );
?>
|
运行结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
array (1) {
[ "GeocoderSearchResponse" ]=>
array (2) {
[0]=>
array (2) {
[ "status" ]=>
string(2) "OK"
[ "result" ]=>
array (4) {
[ "location" ]=>
array (2) {
[ "lat" ]=>
string(8) "39.94921"
[ "lng" ]=>
string(10) "116.463619"
}
[ "precise" ]=>
string(1) "0"
[ "confidence" ]=>
string(2) "50"
[ "level" ]=>
string(6) "脚本"
}
}
[1]=>
array (2) {
[ "status" ]=>
string(2) "OK"
[ "result" ]=>
array (4) {
[ "location" ]=>
array (2) {
[ "lat" ]=>
string(2) "39"
[ "lng" ]=>
string(3) "116"
}
[ "precise" ]=>
string(1) "0"
[ "confidence" ]=>
string(2) "50"
[ "level" ]=>
string(9) "脚本123"
}
}
}
}
|
希望本文所述对大家PHP程序设计有所帮助。