Cel mai bun răspuns
Puteți face acest lucru cu ajutorul unor funcții încorporate, dacă sunteți pasionat de php-ul de bază. Pur și simplu faceți-o ca mai jos:
$xmlObject = simplexml\_load\_string($xmlString);
$jsonString = json\_encode($xmlObject);
$jsonObject = json\_decode($jsonString);
Să găsim câteva modalități fanteziste de a face acest lucru. Trebuie.
În primul rând, avem nevoie de o clasă pentru a converti XML în 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);
}
}
Nu am testat codul. Este posibil să nu se comporte așa cum am vrut. Dar merită încercat. De obicei, problema va fi acolo în modul în care PHP tratează obiectele și șirurile din XML. Sper să funcționeze! Puteți utiliza clasa de mai sus după cum se menționează mai jos:
$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();
Sau puteți obține un pachet de compozitori și îl puteți implementa fără griji ca ar fi fost testat.
Răspuns
Pentru a gestiona formatul de fișier JSON, Python oferă un modul numit JSON
.
PASUL 1: instalați modulul xmltodict folosind pip sau orice alt manager de pachete Python
pip install xmltodict
PASUL 2: importați modulul json utilizând cuvântul cheie import
import json
PASUL 3: Citiți aici fișierul xml, „data\_dict” este variabila în care ne-am încărcat datele XML după ce le-am convertit în tip de date dicționar.
with open("xml\_file.xml") as xml\_file:
data\_dict = xmltodict.parse(xml\_file.read())
PASUL 4: Închideți fișierul XML
xml\_file.close()
PASUL 5: Conversia xml\_data într-un dicționarul și stocarea acestuia într-un obiect JSON variabil sunt înconjurate de acolade {}. Sunt scrise în perechi de chei și valori. json.loads () preia un șir și returnează un obiect json. json.dumps () preia un obiect json și returnează un șir. Folosim xml\_data ca șir de intrare și generăm obiect pyhon, deci folosim json.dumps ()
json\_data = json.dumps(data\_dict)
Aici, json\_data este variabilă utilizată pentru a stoca obiectul generat.
PASUL 6: Scrieți json\_data în fișierul de ieșire
with open("data.json", "w") as json\_file:
json\_file.write(json\_data)
PASUL 7: Închideți fișierul de ieșire
json\_file.close()
Exemplu:
Fișier 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()
Ieșire:
Pentru a învăța lucruri noi și interesante, puteți verifica acest lucru.