Az XML konvertálása JSON formátumba PHP-ben


Legjobb válasz

Néhány beépített függvény segítségével megteheti, ha kedveli a core php-t. Csak tegye az alábbiak szerint:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Keressünk erre valami divatos módot. Van.

Először is szükségünk van valamilyen Osztályra, hogy az XML-t JSON-vá alakítsuk át.

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);

}

}

Nem teszteltem a kódot. Lehet, hogy nem úgy viselkedik, ahogy akartam. De érdemes kipróbálni. Általában a probléma abban rejlik, hogy a PHP hogyan kezeli az XML-ből származó objektumokat és karakterláncokat. Remélem mégis működik! Használhatja a fenti osztályt az alábbiak szerint:

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

Vagy beszerezhet egy zeneszerző csomagot, és gond nélkül megvalósíthatja tesztelték volna.

markwilson / xml-to-json

Válasz

A JSON fájlformátum kezeléséhez a Python egy JSON nevű modult biztosít.

1. LÉPÉS: span> telepítse az xmltodict modult a pip vagy bármely más python csomagkezelő használatával

pip install xmltodict

2. LÉPÉS: importálja a json modult az import kulcsszó használatával

import json

3. LÉPÉS: Olvassa el az xml fájlt itt, „data\_dict” az a változó, amelybe az XML adatainkat konvertáljuk szótár adattípusa.

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

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

4. LÉPÉS: Zárja be az XML fájlt

xml\_file.close()

5. LÉPÉS: konvertálja az xml\_data fájlt szótárba, és tárolja egy változó JSON objektumban göndör zárójelek veszik körül {}. Kulcs- és értékpárokban vannak megírva. A json.loads () beír egy karakterláncot, és visszaad egy json objektumot. A json.dumps () befogad egy json objektumot, és egy karakterláncot ad vissza. Az xml\_data adatbeviteli karakterláncot használjuk, és pyhon objektumot hozunk létre, ezért a json.dumps ()

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

Itt a a létrehozott objektum tárolására használt változó.

6. LÉPÉS: Írja be a json\_data fájlt a kimeneti fájlba

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

json\_file.write(json\_data)

7. LÉPÉS: Zárja be a kimeneti fájlt

json\_file.close()

Példa:

XML fájl:

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

Kimenet:

Izgalmas új dolgok elsajátításához ellenőrizheti.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük