Documentação de função não suportada ou descontinuado.
Sugestão
Recomenda-se a utilização da classe tXmlManager em substituição a função XMLParser.
Motivadores:
- Ao realizar o parser do XML usando a classe em questão, ela não gera classes dinâmicas, melhorando a execução do programa.
- Tem performance elevada na execução do parser.
Descrição
Esta função permite retornar um objeto, que possui uma estrutura XML, recebido de um arquivo por parâmetro.
Sintaxe
XmlParserFile( < cFile >, < cReplace >, < cError >, < cWarning > )
Parâmetros
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cFile | caractere | Representa o dir etório (a partir do rootpath) e o nome de um arquivo *.xml. | X | |
cReplace | caractere | Representa o valor que será substituído, pelos caracteres de espaço em branco, na especificação do nó XML. | X | |
cError | caractere | Caso ocorra algum erro na execução da função, a variável será preenchida com sua descrição. | X | X |
cWarning | caractere | Caso ocorra algum alerta (warning) durante a execução da função, a variável será preenchida com sua descrição. | X | X |
Retorno
Nome | Tipo | Descrição |
---|---|---|
oXML | objeto | Um objeto com a estrutura de acordo com o XML. |
Observações
- No código-fonte (exemplo) abaixo, observe os seguintes detalhes:
- A User Function "getObjXML()" realizará a leitura do arquivo xml grqavado no disco.
- Na variável "cFile", foi informada a string contendo o path e nome do arquivo xml a ser processado, localizado no disco a partir do rootpath do sistema Protheus.
- A função "XmlParserFile" realizará a leitura do arquivo, analisará se a sintaxe e ordem das tags estão formadas, e gerar um objeto Advpl com a árvore correspondente a estrutura do XML.
- Caso as tags não sejam formadas, corretamente, a variável (cError e cWarning) retornarão um alerta (warning) ou erro, conforme os parâmetros (@cError e @cWarning) informados por referência.
- A variável "oXml" retornará o conteúdo do objeto na estrutura de árvore; ou seja, na mesma estrutura XML, onde cada nível da árvore é uma propriedade subsequente do objeto.
- Após você utilizar os objetos dinâmicos gerados pelo parser, a definição deles continua na memória, a menos que você limpe a definição usando a função DelClassIntf().
A estrutura retornada:
<ObjXML> <NodeXML> -<ArrayNodes> -REALNAME -TEXT -TYPE
Exemplo
#INCLUDE "TOTVS.CH" #INCLUDE "XMLXFUN.CH" User Function getObjXML() Local cError := "" Local cWarning := "" Local cXmlFile := "" Local oXml := NIL // Arquivo XML cXmlFile := "xmlcontent.xml" //Gera o Objeto XML oXml := XmlParserFile( cXmlFile, "_", @cError, @cWarning ) If (oXml == NIL ) MsgStop("Falha ao gerar Objeto XML : "+cError+" / "+cWarning) Return Endif // Mostrando a informação do Node MsgInfo(oXml:_PEDIDO:_NOMECLIENTE:Text,"Cliente") Return oXml // Exemplo de conteúdo do arquivo xmlcontent.xml /* <?xml version="1.0" encoding="ISO-8859-1"?> <pedido> <Nome_Cliente>Microsiga Software</Nome_Cliente> <Endereco>Av. Braz Leme</Endereco> <Numero>1361</Numero> <Data>22-03-2005</Data> <Itens> <Item> <Produto>Protheus</Produto> <Quantidade>1</Quantidade> <Preco>100.00</Preco> </Item> </Itens> </pedido> */