Nesse vídeo demonstraremos a utilização da função XmlToArr, que serve para extrair informações de um XML e armazenar em um array fora da estrutura do XML.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include "TOTVS.ch"
/*/{Protheus.doc} User Function zExe545
Converte um nó para uma variável Array separado da estrutura (diferente da XmlNode2Arr)
@type Function
@author Atilio
@since 07/04/2023
@obs
Função XmlToArr
Parâmetros
Nó do objeto XML instanciado
Retorno
Retorna um Array conforme as informações contidas dentro do Nó
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe545()
Local aArea := FWGetArea()
Local cXML := ""
Local oXML
Local cAviso := ""
Local cErro := ""
Local aDados := {}
//Monta o XML que será convertido em um Objeto
cXML := '' + CRLF
cXML += '' + CRLF
cXML += ' Atilio ' + CRLF
cXML += ' 29 ' + CRLF
cXML += ' sim ' + CRLF
cXML += ' ' + CRLF
cXML += ' ' + CRLF
cXML += ' Terminal de Informacao ' + CRLF
cXML += ' terminaldeinformacao.com ' + CRLF
cXML += ' ' + CRLF
cXML += ' ' + CRLF
cXML += ' Atilio Sistemas ' + CRLF
cXML += ' atiliosistemas.com ' + CRLF
cXML += ' ' + CRLF
cXML += ' ' + CRLF
cXML += ' ' + CRLF
//Transformando o XML (texto) em um objeto
oXML := XmlParser(cXML, "_", @cAviso, @cErro)
//Se houve alguma falha
If ! Empty(cErro)
FWAlertError("Houve um erro na conversão do texto para objeto: " + cErro, "Falha no 'parse' do XML")
Else
//Realiza a conversão inteira para um Array
aDados := XmlToArr(oXML:_detalhes:_gostaDeLer)
//Se houver informações, mostra mensagem
If Len(aDados) > 0
FWAlertSuccess("Objeto convertido para Array!", "Teste XmlToArr")
EndIf
EndIf
FWRestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.