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.
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.