ベストアンサー
コア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パッケージを入手して、心配することなく実装できます。テストされているはずです。
回答
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()
出力:
エキサイティングな新しいことを学ぶには、それをチェックしてください。