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():
    
<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="1">
        <title>Code Generation in Action</title>
        <author><first>Jack</first><last>Herrington</last></author>
        <publisher>Manning</publisher>
    </book>
    <book id="2">
        <title>PHP Hacks</title>
        <author><first>Jack</first><last>Herrington</last></author>
        <publisher>O'Reilly</publisher>
    </book>
    <book id="3">
        <title>Podcasting Hacks</title>
        <author><first>Jack</first><last>Herrington</last></author>
        <publisher>O'Reilly</publisher>
    </book>
</books>
    
        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"
      }
   ]}
}
            Starting from the release 1.11.6 the Zend_Json::fromXml() function
            has been rewritten from scratch in order to manage XML element with attributes, text value
            and sub-elements (see the ZF-3257).
        
For instance, if you have an XML document like this:
<?xml version="1.0" encoding="UTF-8"?>
<a>
    <b id="foo"/>
    bar
</a>
            
                The JSON output string returned from
                Zend_Json::fromXml() is:
            
{
   "a" : {
      "b" : {
         "@attributes" : {
            "id" : "foo"
         }
      },
      "@text" : "bar"
   }
}
            The idea is to use a special key value (@text) to store the text value of an XML element, only if this element contains attributes or sub-elements (as in the previous examples). If you have a simple XML element with only a text value, like this:
<?xml version="1.0" encoding="UTF-8"?> <a>foo</a>
the JSON will be {"a":"foo"} that is quite intuitive, instead of {"a":{"@text":"foo"}}.