Fórum

arrow_back

Dificuldade para pegar o valor de um XML

Thiago

09/02/2023 11:28:20

Não estou conseguindo buscar um valor de um xml, que vou receber via API.

Preciso buscar informações dele para fazer um insert no banco de dados.

Se tem uma forma de converter para um Json, ou algum método para buscar o valor.


<Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xmlsoap.org/soap/envelope/">

  <Header>

    <tokenPassport>

      <account>asdfasdf</account>

      <consumerKey>07d774a6087bd8f9fc5830e5c20038c7eaff</consumerKey>

      <token>e29a9aa3cc7d408320b30d1b52fd07be230c6e01a766fc68e40036b2e451460e</token>

      <nonce>280264</nonce>

      <timestamp>16565081</timestamp>

      <signature algorithm="HMAC-SHA256">9dr/IU8DqX/Wt7gcjBIb8PIuGg=</signature>

    </tokenPassport>

    <preferences>

      <runServerSuiteScriptAndTriggerWorkflows>true</runServerSuiteScriptAndTriggerWorkflows>

    </preferences>

    <searchPreferences>

      <pageSize>1000</pageSize>

      <bodyFieldsOnly>true</bodyFieldsOnly>

    </searchPreferences>

  </Header>
</Envelope>

Icaro Antunes

20/03/2023 09:05:52

Olá,Thiago. Temos sim, vou construir um exemplo pra você e mando aqui. 

Icaro Antunes

22/03/2023 11:31:05

Peço desculpa pela demora, porém basta seguir os passos:

Criei um bloco consumindo esse serviço que retorna um xml: https://viacep.com.br/ws/01001000/xml/

Após isso, usei o bloco converte XML para JSON, bloco este que espera um texto. Esse texto será o body que salvei na variável, isto é, este retorno: 

<xmlcep>

<cep>01001-000</cep>

<logradouro>Praça da Sé</logradouro>

<complemento>lado ímpar</complemento>

<bairro>Sé</bairro>

<localidade>São Paulo</localidade>

<uf>SP</uf>

<ibge>3550308</ibge>

<gia>1004</gia>

<ddd>11</ddd>

<siafi>7107</siafi>

</xmlcep>


Caso não consiga ler no seu caso da variável, basta usar um bloco na variável de converter XML para texto, porém no mais irá funcionar desta maneira que botei.


Após isso, apenas salvei o json em uma variável e depois escolhi seu caminho com o bloco obter campo do json. 


Botei para imprimir para vermos um resultado. Espero ter ajudado, qualquer dúvida estamos à disposição.