Legjobb válasz
Néhány beépített függvény segítségével megteheti, ha kedveli a core php-t. Csak tegye az alábbiak szerint:
$xmlObject = simplexml\_load\_string($xmlString);
$jsonString = json\_encode($xmlObject);
$jsonObject = json\_decode($jsonString);
Keressünk erre valami divatos módot. Van.
Először is szükségünk van valamilyen Osztályra, hogy az XML-t JSON-vá alakítsuk át.
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);
}
}
Nem teszteltem a kódot. Lehet, hogy nem úgy viselkedik, ahogy akartam. De érdemes kipróbálni. Általában a probléma abban rejlik, hogy a PHP hogyan kezeli az XML-ből származó objektumokat és karakterláncokat. Remélem mégis működik! Használhatja a fenti osztályt az alábbiak szerint:
$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();
Vagy beszerezhet egy zeneszerző csomagot, és gond nélkül megvalósíthatja tesztelték volna.
Válasz
A JSON fájlformátum kezeléséhez a Python egy JSON
nevű modult biztosít.
1. LÉPÉS: span> telepítse az xmltodict modult a pip vagy bármely más python csomagkezelő használatával
pip install xmltodict
2. LÉPÉS: importálja a json modult az import kulcsszó használatával
import json
3. LÉPÉS: Olvassa el az xml fájlt itt, „data\_dict” az a változó, amelybe az XML adatainkat konvertáljuk szótár adattípusa.
with open("xml\_file.xml") as xml\_file:
data\_dict = xmltodict.parse(xml\_file.read())
4. LÉPÉS: Zárja be az XML fájlt
xml\_file.close()
5. LÉPÉS: konvertálja az xml\_data fájlt szótárba, és tárolja egy változó JSON objektumban göndör zárójelek veszik körül {}. Kulcs- és értékpárokban vannak megírva. A json.loads () beír egy karakterláncot, és visszaad egy json objektumot. A json.dumps () befogad egy json objektumot, és egy karakterláncot ad vissza. Az xml\_data adatbeviteli karakterláncot használjuk, és pyhon objektumot hozunk létre, ezért a json.dumps ()
json\_data = json.dumps(data\_dict)
Itt a a létrehozott objektum tárolására használt változó.
6. LÉPÉS: Írja be a json\_data fájlt a kimeneti fájlba
with open("data.json", "w") as json\_file:
json\_file.write(json\_data)
7. LÉPÉS: Zárja be a kimeneti fájlt
json\_file.close()
Példa:
XML fájl:
# 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()
Kimenet:
Izgalmas új dolgok elsajátításához ellenőrizheti.