|
|
Zend_Json fornece um conveniente método para transformar dados
formatados em XML para o formato JSON. Este recurso
foi inspirado em um » artigo do
IBM developerWorks.
Zend_Json inclui uma função estática chamada
Zend_Json::fromXml(). Esta função irá gerar um
JSON a partir de uma entrada em XML. Esta função
recebe qualquer string arbitrária em XML como um parâmetro de entrada.
Tem também um parâmetro de entrada opcional do tipo booleano que instrui a lógica de
conversão para ignorar ou não os atributos XML durante o processo de
conversão. Se esse parâmetro de entrada opcional não é dado, então o comportamento padrão
é ignorar os atributos XML.
Esta chamada de função é feita como mostrado abaixo:
// a função fromXml simplesmente recebe uma String contendo conteúdo // em XML como entrada. $jsonContents = Zend_Json::fromXml($xmlStringContents, true);
A função Zend_Json::fromXml() faz a conversão da string formata
em XML do parâmetro de entrada e retorna o equivalente como uma string
formatada em JSON. No caso de qualquer erro de formatação do
XML ou erro na lógica de conversão, esta função irá lançar uma exceção.
A lógica de conversão também utiliza técnicas recursivas para percorrer a árvore
XML. Ele suporta até 25 níveis de profundidade de recursão. Se passar
dessa profundidade, será lançado um Zend_Json_Exception. Existem
vários arquivos XML com vários graus de complexidade fornecidos no
diretório de testes de Zend Framework. Eles podem ser usados para testar a
funcionalidade do recurso xml2json.
O simples exemplo a seguir mostra uma string XML passada como entrada e uma string JSON de saída retornada como resultado da função Zend_Json::fromXml(). Este exemplo usa o parâmetro opcional da função para não ignorar os atributos XML durante a conversão. Consequentemente, você pode notar que a string JSON resultante inclui uma representação dos atributos XML presentes na string XML de entrada.
String XML passada como entrada para a função Zend_Json::fromXml():
Code Generation in Action Jack Herrington Manning PHP Hacks Jack Herrington O'Reilly Podcasting Hacks Jack Herrington O'Reilly
String JSON de saída retornada da função Zend_Json::fromXml():
{
"books" : {
"book" : [ {
"@attributes" : {
"id" : "1"
},
"title" : "Code Generation in Action",
"author" : {
"first" : "Jack", "last" : "Herrington"
},
"publisher" : "Manning"
}, {
"@attributes" : {
"id" : "2"
},
"title" : "PHP Hacks", "author" : {
"first" : "Jack", "last" : "Herrington"
},
"publisher" : "O'Reilly"
}, {
"@attributes" : {
"id" : "3"
},
"title" : "Podcasting Hacks", "author" : {
"first" : "Jack", "last" : "Herrington"
},
"publisher" : "O'Reilly"
}
]}
}
Mais detalhes sobre o recurso xml2json podem ser encontrados na proposta original em si. Dê uma olhada na » proposta Zend_xml2json.
|
|
Copyright © 2005-2011 Zend Technologies Inc (compiled by mikaelkael with ZFDocumentor - SVN 20188).

