Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LipeLauro

Xml

Recommended Posts

Amigos, boa tarde!

Estou atravessando um dilema com leitura de xml. Já busquei a solução em todo o forum e não encontrei ainda. Veja bem, tinha feito um sisteminha para ler o xml que uma empresa disponibilizou, e o webservice deles era o seguinte:

 

<dartMetaConsulta>
      <consultas>
            <cpfCnpj>026.153.156-54</cpfCnpj>
            <dataContrato>2012-10-02T00:00:00-03:00</dataContrato>
            <nomeRazao>EMPRESA TAL</nomeRazao>

Desta forma, para ler o xml, eu usava no sistema o seguinte:

 

<?php  
			foreach($xml->dartMetaConsulta as $consultas)
			{
				echo '<tr>'; .... (segue)

Depois de um tempo, a empresa dona do xml, mudou a árvore e inseriu uma nova tag e preciso modificar o sisteminha para conseguir ler o xml. A nova árvore ficou assim:

 

<dartMetaConsulta>
      <consultas>
            <consulta>
                <cpfCnpj>026.153.156-54</cpfCnpj>
                <dataContrato>2012-10-02T00:00:00-03:00</dataContrato>
                <nomeRazao>EMPRESA TAL</nomeRazao>

Observem que entrou a tag <consulta> e depois disso meu sisteminha não consegue mais exibir os dados. Alguém pode me ajudar?

 

Grande abraço a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas não estou querendo gerar o xml, estou querendo ler o xml... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente utilizar a classe DOMDocument, é muito mais fácil.

 

Exemplo:

<?php

$source  = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<dartMetaConsulta>
      <consultas>
            <consulta>
                <cpfCnpj>026.153.156-54</cpfCnpj>
                <dataContrato>2012-10-02T00:00:00-03:00</dataContrato>
                <nomeRazao>EMPRESA TAL</nomeRazao>
            </consulta>
            <consulta>
                <cpfCnpj>026.133.116-59</cpfCnpj>
                <dataContrato>2013-10-12T00:00:00-03:00</dataContrato>
                <nomeRazao>EMPRESA TAL 2</nomeRazao>
            </consulta>
      </consultas>
</dartMetaConsulta>				
XML;

$DOMDocument = new DOMDocument( '1.0', 'UTF-8' );
$DOMDocument->preserveWhiteSpace = false;
$DOMDocument->loadXML( $source );

$consultas = $DOMDocument->getElementsByTagName( 'consulta' );

foreach( $consultas as $consulta )
{
	foreach( $consulta->childNodes as $childNode )
	{
		printf( '<strong>%s:</strong> %s<br/>', $childNode->nodeName, $childNode->nodeValue );
	}
	echo '<hr>';
}

?>

 

Saída

cpfCnpj: 026.153.156-54
dataContrato: 2012-10-02T00:00:00-03:00
nomeRazao: EMPRESA TAL
---------------------------------------------
cpfCnpj: 026.133.116-59
dataContrato: 2013-10-12T00:00:00-03:00
nomeRazao: EMPRESA TAL 2
---------------------------------------------

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.