Sådan konverteres XML til JSON i PHP


Bedste svar

Du kan gøre det ved hjælp af nogle indbyggede funktioner, hvis du er glad for core php. Bare gør det som nedenfor:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Lad os finde en fancy måde at gøre dette på. Skal vi.

Først har vi brug for noget klasse for at 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 opfører sig muligvis ikke som jeg mente. Men det er værd at prøve. Normalt vil problemet være der, hvordan PHP behandler objekter og strenge fra XML. Jeg håber, det fungerer dog! Du kan bruge ovenstående klasse som angivet nedenfor:

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

Eller du kan få en komponistpakke og implementere den uden bekymringer som det ville være blevet testet.

markwilson / xml-to-json

Svar

For at håndtere JSON-filformatet giver Python et modul med navnet JSON.

TRIN 1: installer xmltodict-modul ved hjælp af pip eller en hvilken som helst anden python-pakkehåndtering

pip install xmltodict

TRIN 2: importer json-modul ved hjælp af nøgleordet import

import json

TRIN 3: Læs xml-filen her, “data\_dict” er den variabel, hvor vi har indlæst vores XML-data efter konvertering til ordbogsdatatype.

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

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

TRIN 4: Luk XML-filen

xml\_file.close()

TRIN 5: Konverter xml\_data til en ordbog og gem den i et variabelt JSON-objekt er omgivet af krøllede seler {}. De er skrevet i nøgle- og værdipar. json.loads () tager en streng og returnerer et json-objekt. json.dumps () tager et json-objekt ind og returnerer en streng. Vi bruger xml\_data som inputstreng og genererer pyhon-objekt, så vi bruger json.dumps ()

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

Her er json\_data variabel, der bruges til at gemme det genererede objekt.

TRIN 6: Skriv json\_data til outputfil

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

json\_file.write(json\_data)

TRIN 7: Luk outputfilen

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

Output:

For at lære spændende nye ting kan du tjekke det ud.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *