Melhor resposta
Você pode fazer isso com a ajuda de algumas funções integradas se você gosta de php principal. Basta fazer como a seguir:
$xmlObject = simplexml\_load\_string($xmlString);
$jsonString = json\_encode($xmlObject);
$jsonObject = json\_decode($jsonString);
Vamos encontrar uma maneira sofisticada de fazer isso. Vamos.
Primeiro, precisamos de alguma classe para converter XML em 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);
}
}
Não testei o código. Pode não se comportar da maneira que pretendia. Mas vale a pena tentar. Normalmente, o problema estará na maneira como o PHP trata objetos e strings de XML. Espero que funcione! Você pode usar a classe acima conforme indicado abaixo:
$student = XmlToJson::fromFile("/var/www/uploads/student.xml")->toJson();
Ou você pode obter algum pacote do compositor e implementá-lo sem se preocupar, como teria sido testado.
Resposta
Para lidar com o formato de arquivo JSON, o Python fornece um módulo chamado JSON
.
ETAPA 1: instalar o módulo xmltodict usando pip ou qualquer outro gerenciador de pacotes python
pip install xmltodict
ETAPA 2: importe o módulo json usando a palavra-chave import
import json
PASSO 3: Leia o arquivo xml aqui, “data\_dict” é a variável na qual carregamos nossos dados XML após convertê-los para tipo de dados de dicionário.
with open("xml\_file.xml") as xml\_file:
data\_dict = xmltodict.parse(xml\_file.read())
ETAPA 4: feche o arquivo XML
xml\_file.close()
ETAPA 5: Converta os xml\_data em um dicionário e armazená-lo em um objeto JSON variável são cercados por chaves {}. Eles são escritos em pares de chave e valor. json.loads () pega uma string e retorna um objeto json. json.dumps () pega um objeto json e retorna uma string. Usamos xml\_data como string de entrada e geramos objeto pyhon, então usamos json.dumps ()
json\_data = json.dumps(data\_dict)
Aqui, json\_data é o variável usada para armazenar o objeto gerado.
PASSO 6: Grave o json\_data no arquivo de saída
with open("data.json", "w") as json\_file:
json\_file.write(json\_data)
ETAPA 7: Feche o arquivo de saída
json\_file.close()
Exemplo:
Arquivo 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()
Resultado:
Para aprender coisas novas e interessantes, você pode conferir.