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 := '<?xml version="1.0"?>' + CRLF cXML += '<detalhes>' + CRLF cXML += ' <nome>Atilio</nome>' + CRLF cXML += ' <idade>29</idade>' + CRLF cXML += ' <gostaDeLer>sim</gostaDeLer>' + CRLF cXML += ' <sites>' + CRLF cXML += ' <site item="1">' + CRLF cXML += ' <nome>Terminal de Informacao</nome>' + CRLF cXML += ' <url>terminaldeinformacao.com</url>' + CRLF cXML += ' </site>' + CRLF cXML += ' <site item="2">' + CRLF cXML += ' <nome>Atilio Sistemas</nome>' + CRLF cXML += ' <url>atiliosistemas.com</url>' + CRLF cXML += ' </site>' + CRLF cXML += ' </sites>' + CRLF cXML += '</detalhes>' + 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.