PHP利用JSON將XML轉換為陣列

jefferyjob發表於2015-12-24
在很多開發專案中,我們都會遇到將XML檔案轉換為陣列使用,因此在本篇PHP教程中,UncleToo和大家一起學習如何轉換XML為陣列

現在有一個uncletoo.xml的配置檔案,格式如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<h6>Step
1: XML File</
h6>
<?xml version=`1.0`?>
<moleculedb>
    <molecule name=`Benzine`>
        <symbol>ben</symbol>
        <code>A</code>
    </molecule>
    <molecule name=`Water`>
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
<molecule name=`Parvez`>
        <symbol>h2o</symbol>
        <code>K</code>
    </molecule>
</moleculedb>

1、讀XML檔案內容,並儲存到字串變數中

下面我們使用PHP自帶的file_get_contents()函式將檔案內容讀取到一個字串變數中:

$xmlfile = file_get_contents($path);

此時$xmlfile變數的值如下:

2、將字串轉換為物件

這一步我們將使用simplexml_load_string()函式,將上一步得到的字串轉換為物件(Object):

$ob= simplexml_load_string($xmlfile);

此時$ob的值如下:

3、將物件轉換為JSON

上一步轉換成物件後,現在,我們要將物件轉換成JSON格式字串:

$json  = json_encode($ob);

此時$json變數的值如下:

4、解析JSON字串

這也是最後一步了,我們需要將JSON格式的字串轉換為我們需要的陣列:

$configData = json_decode($json, true);

現在$configData裡儲存的資料就是我麼最後要得到的陣列,如下:

完整轉換程式碼:

1
2
3
4
5
6
<?php
$xmlfile file_get_contents($path);
$ob=
simplexml_load_string(
$xmlfile);
$json  =
json_encode(
$ob);
$configData =
json_decode(
$json,
true);
?>





相關文章