Come convertire XML in JSON in PHP


La migliore risposta

Puoi farlo con laiuto di alcune funzioni integrate se sei appassionato di core php. Procedi come di seguito:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Troviamo un modo carino per farlo. Dovremmo.

Innanzitutto, abbiamo bisogno di una classe per convertire XML in 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);

}

}

Non ho testato il codice. Potrebbe non comportarsi nel modo in cui volevo. Ma vale la pena provare. Di solito il problema sarà nel modo in cui PHP tratta oggetti e stringhe da XML. Spero che funzioni però! Puoi usare la classe sopra come indicato di seguito:

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

Oppure puoi ottenere un pacchetto compositore e implementarlo senza preoccupazioni come sarebbe stato testato.

markwilson / xml-to-json

Risposta

Per gestire il formato di file JSON, Python fornisce un modulo denominato JSON.

PASSAGGIO 1: installa il modulo xmltodict utilizzando pip o qualsiasi altro gestore di pacchetti Python

pip install xmltodict

PASSAGGIO 2: importa il modulo json utilizzando la parola chiave import

import json

PASSAGGIO 3: Leggi il file xml qui, “data\_dict” è la variabile in cui abbiamo caricato i nostri dati XML dopo averli convertiti in tipo di dati dizionario.

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

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

PASSAGGIO 4: Chiudi il file XML

xml\_file.close()

PASSAGGIO 5: Converti xml\_data in un dizionario e memorizzarlo in un oggetto JSON variabile sono circondati da parentesi graffe {}. Sono scritti in coppie chiave e valore. json.loads () accetta una stringa e restituisce un oggetto json. json.dumps () accetta un oggetto json e restituisce una stringa. Usiamo xml\_data come stringa di input e generiamo loggetto pyhon, quindi usiamo json.dumps ()

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

Qui, json\_data è il variabile utilizzata per memorizzare loggetto generato.

PASSAGGIO 6: Scrivi json\_data nel file di output

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

json\_file.write(json\_data)

PASSAGGIO 7: Chiudi il file di output

json\_file.close()

Esempio:

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

Risultato:

Per imparare cose nuove ed entusiasmanti puoi dare unocchiata.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *