Como converter XML em JSON em PHP


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.

markwilson / xml-to-json

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.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *