Jak przekonwertować XML na JSON w PHP


Najlepsza odpowiedź

Możesz to zrobić za pomocą niektórych wbudowanych funkcji, jeśli lubisz podstawowe PHP. Po prostu zrób to jak poniżej:

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

$jsonString = json\_encode($xmlObject);

$jsonObject = json\_decode($jsonString);

Znajdźmy na to jakiś wymyślny sposób. Powinniśmy.

Najpierw potrzebujemy klasy do konwersji XML na 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);

}

}

Nie testowałem kodu. Może nie zachowywać się tak, jak chciałem. Ale warto spróbować. Zwykle problem tkwi w sposobie, w jaki PHP traktuje obiekty i ciągi znaków XML. Mam nadzieję, że to zadziała! Możesz użyć powyższej klasy, jak podano poniżej:

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

Lub możesz pobrać pakiet kompozytora i zaimplementować go bez obaw, ponieważ zostałby przetestowany.

markwilson / xml-to-json

Odpowiedź

Aby obsłużyć format pliku JSON, Python udostępnia moduł o nazwie JSON.

KROK 1: zainstaluj moduł xmltodict za pomocą pip lub dowolnego innego menedżera pakietów Pythona

pip install xmltodict

KROK 2: zaimportuj moduł json za pomocą słowa kluczowego import

import json

KROK 3: Przeczytaj plik xml tutaj, „data\_dict” to zmienna, w której załadowaliśmy nasze dane XML po konwersji na typ danych słownika.

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

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

KROK 4: Zamknij plik XML

xml\_file.close()

KROK 5: Przekonwertuj xml\_data na słownika i przechowywać go w zmiennej obiekt JSON są otoczone nawiasami klamrowymi {}. Są zapisane w parach klucz i wartość. json.loads () pobiera ciąg i zwraca obiekt json. json.dumps () pobiera obiekt json i zwraca ciąg. Używamy xml\_data jako ciągu wejściowego i generujemy obiekt pyhon, więc używamy json.dumps ()

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

Tutaj json\_data to zmienna używana do przechowywania wygenerowanego obiektu.

KROK 6: Zapisz json\_data do pliku wyjściowego

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

json\_file.write(json\_data)

KROK 7: Zamknij plik wyjściowy

json\_file.close()

Przykład:

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

Wynik:

Aby nauczyć się nowych ekscytujących rzeczy, możesz to sprawdzić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *