XmlParser ADVPL: Como Tratar Arquivos XML no Protheus

Tempo de leitura: 2 minutos

Neste post, vamos aprender de forma objetiva como utilizar a função XmlParser em ADVPL. Esta função é essencial para converter uma string XML em um objeto manipulável, facilitando o acesso aos dados em integrações e rotinas do Protheus.

 

Diferente de outras funções, o XmlParser processa o conteúdo XML que já está em memória (string), transformando cada tag em uma propriedade do objeto gerado. Essa abordagem é fundamental na trilha de ADVPL Avançado no Protheus, especialmente para quem busca dominar o Tratamento de XML.

 

Sintaxe:

XmlParser(cXml,cRep,cErro,cAviso)
 
 
Parâmetros:
 

Retorno:

Exemplo da função XmlParser em ADVPL:

#include 'protheus.ch'
#include 'rwmake.ch'
#INCLUDE "TBICONN.CH"
#INCLUDE "XMLXFUN.CH"

/*{Protheus.doc} User Function fXmlPars
    Link de referência:https://tdn.totvs.com/display/tec/XmlParser
    (Essa função tem por finalidade mostrar a função XmlParser em ADVPL)
    @type  Function
    @author Adilio Costa
    @since 18/12/2024
    @version 1.0
   @Inscreva-se no Blog ProtheusAdvpl:
https://www.protheusadvpl.com.br
@Inscreva-se no Canal ProtheusAdvpl:
https://www.youtube.com/protheusadvpl
@Siga-nos no Instagram:
https://www.instagram.com/protheusadvpl
@Conheça os Cursos e Formações ProtheusAdvpl:
https://cursos-e-formacoes-protheusadvpl.gr-site.com/

|Se esse conteúdo foi útil pra você nos ajude divulgando 
ele e nossas redes sociais!!|
*/

User Function fXmlPars()
	Local cErro   := ""
	Local cAviso := ""
	Local oXml := Nil

	//Gera o Objeto XML
	oXml := XmlParser( GeraXML(), "_", @cErro, @cAviso )

	//Se objeto oXml for igual a Nil será atribuído o erro ou um aviso às variáveis cErro e cAviso
	If(oXml == Nil)
		MsgStop("Falha ao gerar Objeto XML : "+cErro+" / "+cAviso)
		Return
	Else
		cMsg := "Linguagem 1:" + oXml:_PROTHEUS:_LINGUAGENS:_LIN1:TEXT + Chr(10)+Chr(13)
		cMsg += "Linguagem 2:" + oXml:_PROTHEUS:_LINGUAGENS:_LIN2:TEXT + Chr(10)+Chr(13)
		cMsg := "Módulo 2:" + oXml:_PROTHEUS:_MODULOS:_MODULO2:TEXT
	EndIf

	FWAlertInfo(cMsg, "Função XmlParser")

Return oXml


Static Function GeraXml()
	Local cXml

	cXml := '<?xml version="1.0" encoding="ISO-8859-1"?>'
	cXml += "<protheus>"
	cXml += "    <linguagens>"
	cXml += "      <lin1>ADVPL</lin1>"
	cXml += "      <lin2>TLPP</lin2>"
	cXml += "    </linguagens>"
	cXml += "    <modulos>"
	cXml += "      <modulo2>Compras</modulo2>"
	cXml += "      <modulo4>Estoque e Custos</modulo4>"
	cXml += "      <modulo5>Faturamento</modulo5>"
	cXml += "      <modulo6>Financeiro</modulo6>"
	cXml += "    </modulos>"
	cXml += "</protheus>"

Return cXml

 

Conclusão

A função XmlParser simplifica o tratamento de dados estruturados, tornando o desenvolvimento de integrações mais ágil. Utilize esta abordagem sempre que precisar ler retornos de APIs ou strings XML. Se precisar manipular os dados em arrays após o parse, veja também como utilizar a função XmlNode2Arr.

 

 

🚀 Quer evoluir no ADVPL de verdade?

Receba conteúdos práticos, códigos prontos e dicas que você 

 não aprende na documentação oficial

✔ Funções essenciais do ADVPL
✔ Exemplos reais usados no Protheus
✔ Dicas de debug e performance

🔐 Seu email está seguro. Sem spam.
 
 

Participe das nossas comunidades:

 

Bem, finalizamos mais um post aqui no blog. Espero que você tenha entendido, qualquer dúvida nos envie um e-mail para adiliocosta@protheusadvpl.com.br. Grande abraço e fica com Deus.

Links de referência(s):

 
🚀 Quer dominar o Protheus de verdade?
Entre para o ProtheusAdvpl e receba conteúdos exclusivos sobre desenvolvimento, infraestrutura, módulos e carreira no Protheus

✔ Conteúdos organizados por categorias (Programação, Framework, Backoffice e RH)
✔ Dicas práticas usadas no dia a dia do Protheus
✔ Acesso a materiais, post e atualizações do Blog
🔐 Seu email está seguro. Sem spam. Só conteúdo profissional.