Jak převést XML na JSON v PHP


Nejlepší odpověď

Pokud máte rádi základní php, můžete to udělat pomocí některých vestavěných funkcí. Postupujte takto:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Najdeme nějaký fantazijní způsob, jak toho dosáhnout. Budeme.

Nejprve potřebujeme nějakou třídu pro převod XML na 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);

}

}

Kód jsem netestoval. Možná se nebude chovat tak, jak jsem chtěl. Ale stojí za to to vyzkoušet. Problém obvykle bude ve způsobu, jakým PHP zachází s objekty a řetězci z XML. Doufám, že to bude fungovat! Můžete použít výše uvedenou třídu, jak je uvedeno níže:

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

Nebo můžete získat nějaký skladatelský balíček a bez obav jej implementovat jako bylo by to otestováno.

markwilson / xml-to-json

Odpověď

Ke zpracování formátu souboru JSON poskytuje Python modul s názvem JSON.

KROK 1: install xmltodict module using pip or any other python package manager

pip install xmltodict

KROK 2: importujte modul json pomocí importu klíčových slov

import json

KROK 3: Zde si přečtěte soubor XML, „data\_dict“ je proměnná, do které jsme načetli data XML po převodu na datový typ slovníku.

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

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

KROK 4: Zavřete soubor XML

xml\_file.close()

KROK 5: Převeďte xml\_data na slovník a uložit jej do proměnného objektu JSON jsou obklopeny složenými závorkami {}. Jsou zapsány v párech klíčů a hodnot. json.loads () vezme řetězec a vrátí objekt json. json.dumps () vezme objekt json a vrátí řetězec. Jako vstupní řetězec používáme xml\_data a generujeme pyhonový objekt, takže používáme json.dumps ()

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

Zde je json\_data proměnná sloužící k uložení generovaného objektu.

KROK 6: Napište soubor json\_data do výstupního souboru

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

json\_file.write(json\_data)

KROK 7: Zavřete výstupní soubor

json\_file.close()

Příklad:

Soubor 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()

Výstup:

Chcete-li se naučit vzrušující nové věci, můžete si to prohlédnout.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *