Beste svaret
Du kan gjøre det ved hjelp av noen innebygde funksjoner hvis du er glad i core php. Bare gjør det som nedenfor:
$xmlObject = simplexml\_load\_string($xmlString);
$jsonString = json\_encode($xmlObject);
$jsonObject = json\_decode($jsonString);
La oss finne noen fancy måter å gjøre dette på. Skal vi.
Først trenger vi litt klasse for å konvertere XML til 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);
}
}
Jeg har ikke testet koden. Det oppfører seg kanskje ikke slik jeg mente. Men det er verdt å prøve. Vanligvis vil problemet være der i måten PHP behandler objekter og strenger fra XML på. Jeg håper det fungerer skjønt! Du kan bruke klassen ovenfor som angitt nedenfor:
$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();
Eller du kan få en komponistpakke og implementere den uten bekymringer som det hadde blitt testet.
Svar
For å håndtere JSON-filformatet, gir Python en modul som heter JSON
.
TRINN 1: installer xmltodict-modul ved hjelp av pip eller hvilken som helst annen python-pakkebehandling
pip install xmltodict
TRINN 2: importer json-modul ved hjelp av nøkkelordet import
import json
TRINN 3: Les xml-filen her, “data\_dict” er variabelen vi har lastet inn XML-data i etter å ha konvertert den til ordbokdatatype.
with open("xml\_file.xml") as xml\_file:
data\_dict = xmltodict.parse(xml\_file.read())
TRINN 4: Lukk XML-filen
xml\_file.close()
TRINN 5: Konverter xml\_data til en ordbok og lagre den i et variabelt JSON-objekt er omgitt av krøllete bukseseler {}. De er skrevet i nøkkel- og verdipar. json.loads () tar inn en streng og returnerer et json-objekt. json.dumps () tar inn et json-objekt og returnerer en streng. Vi bruker xml\_data som inndatastreng og genererer pyhon-objekt, så vi bruker json.dumps ()
json\_data = json.dumps(data\_dict)
Her er json\_data variabel som brukes til å lagre det genererte objektet.
TRINN 6: Skriv json\_data til utdatafilen
with open("data.json", "w") as json\_file:
json\_file.write(json\_data)
TRINN 7: Lukk utdatafilen
json\_file.close()
Eksempel:
XML-fil:
# 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()
Utgang:
For å lære spennende nye ting, kan du sjekke det.