Meilleure réponse
Vous pouvez le faire avec l’aide de certaines fonctions intégrées si vous aimez le noyau PHP. Faites-le simplement comme ci-dessous:
$xmlObject = simplexml\_load\_string($xmlString);
$jsonString = json\_encode($xmlObject);
$jsonObject = json\_decode($jsonString);
Trouvons une façon sophistiquée de faire cela. Allons-y.
Premièrement, nous avons besoin dune classe pour convertir XML en 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);
}
}
Je nai pas testé le code. Il se peut que cela ne se comporte pas comme je le voulais. Mais ça vaut le coup dessayer. Habituellement, le problème réside dans la manière dont PHP traite les objets et les chaînes de XML. Jespère que ça marche! Vous pouvez utiliser la classe ci-dessus comme indiqué ci-dessous:
$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();
Ou, vous pouvez obtenir un package de composition et limplémenter sans soucis comme il aurait été testé.
Réponse
Pour gérer le format de fichier JSON, Python fournit un module nommé JSON
.
ÉTAPE 1: installer le module xmltodict à laide de pip ou de tout autre gestionnaire de packages python
pip install xmltodict
ÉTAPE 2: importez le module json en utilisant le mot-clé import
import json
ÉTAPE 3: Lisez le fichier xml ici, « data\_dict » est la variable dans laquelle nous avons chargé nos données XML après les avoir converties en type de données dictionnaire.
with open("xml\_file.xml") as xml\_file:
data\_dict = xmltodict.parse(xml\_file.read())
ÉTAPE 4: Fermez le fichier XML
xml\_file.close()
ÉTAPE 5: Convertissez les données xml en dictionnaire et le stocker dans un objet JSON variable sont entourés daccolades {}. Ils sont écrits en paires clé et valeur. json.loads () prend une chaîne et retourne un objet json. json.dumps () prend un objet json et renvoie une chaîne. Nous utilisons xml\_data comme chaîne dentrée et générons un objet pyhon, donc nous utilisons json.dumps ()
json\_data = json.dumps(data\_dict)
Ici, json\_data est le variable utilisée pour stocker lobjet généré.
ÉTAPE 6: Ecrivez les json\_data dans le fichier de sortie
with open("data.json", "w") as json\_file:
json\_file.write(json\_data)
ÉTAPE 7: Fermez le fichier de sortie
json\_file.close()
Exemple:
Fichier 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()
Résultat:
Pour apprendre de nouvelles choses passionnantes, vous pouvez le vérifier.