Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Portuguese

Pagetitle
XmlParserFile
XmlParserFile

Pagetitle
XmlParserFile
XmlParserFile

Descrição

Esta função permite retornar um objeto, que possui uma estrutura XML, recebido de um arquivo por parâmetro.

Sintaxe

Bloco de código
collapsefalse
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

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:

    Bloco de código
    languagecpp
    themeEclipse
    linenumberstrue
    collapsefalse
     <ObjXML>
      <NodeXML>
        -<ArrayNodes>
        -REALNAME
        -TEXT
        -TYPE
    

Exemplo

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
  #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>
  */


Veja também