Converter um DataSet em XML com PHP

01/09/2015

0

PHP

Olá todos(as)!

Seria possível converter um XML com DataSet em um simples XML utilizando o PHP? Tentei usar o simple_xml_load_string() mas não funcionou. Eu recebo dados de um webservice só que eles me chegam no formato de DataSet e não consigo/não sei trabalhar com eles assim. Abaixo segue um trecho do retorno do webservice pra olharem e verem melhor o que estou dizendo:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<DataSet xmlns="http://allnations/wsintegracao/">
<xs:schema xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="NewDataSet">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Produtos">
<xs:complexType>
<xs:sequence>
<xs:element name="TIMESTAMP" type="xs:dateTime" minOccurs="0"/>
<xs:element name="DEPARTAMENTO" type="xs:string" minOccurs="0"/>
<xs:element name="CATEGORIA" type="xs:string" minOccurs="0"/>
<xs:element name="SUBCATEGORIA" type="xs:string" minOccurs="0"/>
<xs:element name="FABRICANTE" type="xs:string" minOccurs="0"/>
<xs:element name="CODIGO" type="xs:string" minOccurs="0"/>
<xs:element name="DESCRICAO" type="xs:string" minOccurs="0"/>
<xs:element name="DESCRTEC" type="xs:string" minOccurs="0"/>
<xs:element name="PARTNUMBER" type="xs:string" minOccurs="0"/>
<xs:element name="EAN" type="xs:string" minOccurs="0"/>
<xs:element name="GARANTIA" type="xs:int" minOccurs="0"/>
<xs:element name="PESOKG" type="xs:decimal" minOccurs="0"/>
<xs:element name="PRECOREVENDA" type="xs:decimal" minOccurs="0"/>
<xs:element name="DISPONIVEL" type="xs:int" minOccurs="0"/>
<xs:element name="URLFOTOPRODUTO" type="xs:string" minOccurs="0"/>
<xs:element name="ESTOQUE" type="xs:string" minOccurs="0"/>
<xs:element name="NCM" type="xs:string" minOccurs="0"/>
<xs:element name="LARGURA" type="xs:decimal" minOccurs="0"/>
<xs:element name="ALTURA" type="xs:decimal" minOccurs="0"/>
<xs:element name="PROFUNDIDADE" type="xs:decimal" minOccurs="0"/>
<xs:element name="ATIVO" type="xs:int" minOccurs="0"/>
<xs:element name="SUBSTTRIBUTARIA" type="xs:int" minOccurs="0"/>
<xs:element name="ORIGEMPRODUTO" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<Produtos diffgr:id="Produtos1" msdata:rowOrder="0">
<TIMESTAMP>2015-08-12T13:42:11-03:00</TIMESTAMP>
<DEPARTAMENTO>IMPRESSÃO E SUPRIMENTOS</DEPARTAMENTO>
<CATEGORIA>ACESSÓRIOS PARA IMPRESSÃO</CATEGORIA>
<SUBCATEGORIA>CABOS</SUBCATEGORIA>
<FABRICANTE>PCTOP</FABRICANTE>
<CODIGO>0029682</CODIGO>
<DESCRICAO>
CABO PCTOP PARA IMPRESSORA - CBIM01 A/B USB 2.0 1,8M
</DESCRICAO>
<DESCRTEC>
Conectores: USB-A e USB-B Interface: USB 2.0. Comprimento do cabo: 1,80m. Velocidade de transferência: 480mbps
</DESCRTEC>
<PARTNUMBER>CBIM01</PARTNUMBER>
<EAN>7898951027374</EAN>
<GARANTIA>12</GARANTIA>
<PESOKG>0.0500</PESOKG>
<PRECOREVENDA>3.0300</PRECOREVENDA>
<DISPONIVEL>1</DISPONIVEL>
<URLFOTOPRODUTO>
http://images.allnations.com.br/imagens/produtos/imagemSite.aspx?h=196&l=246&src=0029682
</URLFOTOPRODUTO>
<ESTOQUE>RJ</ESTOQUE>
<NCM>85444200</NCM>
<LARGURA>0.0500</LARGURA>
<ALTURA>0.0200</ALTURA>
<PROFUNDIDADE>0.1000</PROFUNDIDADE>
<ATIVO>1</ATIVO>
<SUBSTTRIBUTARIA>1</SUBSTTRIBUTARIA>
<ORIGEMPRODUTO>1 - ESTRANGEIRA - IMPORTACAO DIRETA</ORIGEMPRODUTO>
</Produtos>


Daí pra baixo é mais um monte de produtos e a finalização do DataSet, com o fechamento das tags.

Alguma ideia do que fazer? Grato pela atenção!
Diego Borges

Diego Borges

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar