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.
A estrutura retornada:
<ObjXML> <NodeXML> -<ArrayNodes> -REALNAME -TEXT -TYPE
Exemplo
#INCLUDE "TOTVS.CH"
#INCLUDE "XMLXFUN.CH"
User Function getObjXML()
Local cError := ""
Local cWarning := ""
Local oXml := NIL
//Gera o Objeto XML
oXml := XmlParserFile( GeraXML(), "_", @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
// função para gerar uma string contendo um xml
Static Function GeraXML()
Local cScript
cScript := '<?xml version="1.0" encoding="ISO-8859-1"?>'
cScript += "<pedido>"
cScript += " <Nome_Cliente>Microsiga Software</Nome_Cliente>"
cScript += " <Endereco>Av. Braz Leme</Endereco>"
cScript += " <Numero>1361</Numero>"
cScript += " <Data>22-03-2005</Data>"
cScript += " <Itens>"
cScript += " <Item>"
cScript += " <Produto>Protheus</Produto>"
cScript += " <Quantidade>1</Quantidade>"
cScript += " <Preco>100.00</Preco>"
cScript += " </Item>"
cScript += " </Itens>"
cScript += "</pedido>"
Return cScript
Abrangência
Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10 , ByYou Application Server