PHPでXMLをJSONに変換する方法


ベストアンサー

コアphpが好きな場合は、いくつかの組み込み関数を使用して変換できます。以下のようにしてください:

$xmlObject = simplexml\_load\_string($xmlString);

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

これを行うためのいくつかの素晴らしい方法を見つけましょう。

まず、XMLをJSONに変換するためのクラスが必要です。

class XmlToJson{

private $xmlObject;

public function getXmlObject(){

return $this->xmlObject;

}

// It"s basic constructor. Just getting the XML object

// If we have XML Object then we can just create new

// Object with XML Object as parameter.

public function \_\_construct($xmlObject = null){

$this->xmlObject = $xmlObject;

}

// Read from XML file and create Object from the contents.

public static function fromFile($filepath){

if(!file\_exists($filepath){

throw new Exception("File not found");

}

$xmlString = file\_get\_contents($filepath);

if($xmlString === false){

throw new Exception("Could not read the file");

}

return self::fromString($xmlString);

}

// Get XML String and create new Object from the string.

public static function fromString($xmlString){

if($xmlObject === false){

throw new Exception("Could not convert to XML Object");

}

return new XmlToJson($xmlObject);

}

// Get Json Object from the XML Object we have

public function getJson(){

$jsonString = json\_encode($this->xmlObject);

return json\_decode($jsonString);

}

}

コードをテストしていません。意図したとおりに動作しない可能性があります。しかし、試してみる価値はあります。通常、問題はPHPがXMLからオブジェクトと文字列を処理する方法にあります。私はそれがうまくいくことを願っています!上記のクラスは、以下のように使用できます。

$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();

または、composerパッケージを入手して、心配することなく実装できます。テストされているはずです。

markwilson / xml-to-json

回答

JSONファイル形式を処理するために、PythonはJSONという名前のモジュールを提供します。

ステップ1: pipまたはその他のpythonパッケージマネージャーを使用してxmltodictモジュールをインストールします

pip install xmltodict

ステップ2:キーワードimportを使用してjsonモジュールをインポートします

import json

ステップ3:ここでxmlファイルを読み取ります。“ data\_dict” は、XMLデータを変換した後にロードした変数です。辞書のデータ型。

with open("xml\_file.xml") as xml\_file:

data\_dict = xmltodict.parse(xml\_file.read())

ステップ4: XMLファイルを閉じます

xml\_file.close()

ステップ5: xml\_dataをに変換します辞書を作成して変数JSONオブジェクトに格納すると、中括弧{}で囲まれます。それらはキーと値のペアで記述されます。 json.loads()は文字列を受け取り、jsonオブジェクトを返します。 json.dumps()はjsonオブジェクトを受け取り、文字列を返します。 xml\_dataを入力文字列として使用し、pyhonオブジェクトを生成するため、json.dumps()を使用します

json\_data = json.dumps(data\_dict)

ここで、json\_dataは生成されたオブジェクトを格納するために使用される変数。

ステップ6: json\_dataを出力ファイルに書き込みます

with open("data.json", "w") as json\_file:

json\_file.write(json\_data)

ステップ7: 出力ファイルを閉じます

json\_file.close()

例:

XMLファイル:

# Program to convert an xml

# file to json file

# import json module and xmltodict

# module provided by python

import json

import xmltodict

# open the input xml file and read

# data in form of python dictionary

# using xmltodict module

with open("test.xml") as xml\_file:

data\_dict = xmltodict.parse(xml\_file.read())

xml\_file.close()

# generate the object using json.dumps()

# corresponding to json data

json\_data = json.dumps(data\_dict)

# Write the json data to output

# json file

with open("data.json", "w") as json\_file:

json\_file.write(json\_data)

json\_file.close()

出力:

エキサイティングな新しいことを学ぶには、それをチェックしてください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です