Neste exemplo criamos o xml através da função GeraXML, parseamos ele através da xmlParser retornando o objeto xml.
Em seguida visualizamos o objeto retornado e usamos a funçao xmlChildCount retornando a quantidade de elementos no
objeto contendo o xml. No Nosso exemplo a função irá retornar 5 elementos.Agora usaremos a xmlNewNode, especificando
que o novo nodo será adicionado como filho de '<pedido>', logo depois acessamos o nodo e acrecentamos um texto para
ele. obs: o resultado disso no xml será <exemplo1>Exemplo Microsiga</exemplo1>
Após a criação do nodo, a xmlChildCount irá retornar 6 indicando que o nó foi inserido.
#INCLUDE "TOTVS.CH"
#INCLUDE "XMLXFUN.CH"
User Function getObjXML()
Local cError := ""
Local cWarning := ""
Local cXML := ""
Local oXml := NIL
//Gera o Objeto XML
oXml := XmlParser( GeraXML(), "_", @cError, @cWarning )
//verifica quantos elementos possuo
conout( XmlChildCount( oXml:_PEDIDO ) )
// Criando um node
XmlNewNode(oXml:_PEDIDO, "Exemplo1", "Exemplo1", "NOD" )
//setando o CONTEUDO do meu nodo ""
oXml:_PEDIDO:Exemplo1:Text := "Exemplo Microsiga"
//verifica quantos elementos possuo depois da inserção
conout( XmlChildCount( oXml:_PEDIDO ) )
// Tranforma o Objeto XML em string
//SAVE oXml XMLSTRING cXML
Return oXml
// função para gerar uma string contendo um xml
Static Function GeraXML()
Local cScript := '<?xml version="1.0" encoding="UTF-8"?>'
cScript += "<pedido>"
cScript += " <NomeCliente>Microsiga Software S/A</NomeCliente>"
cScript += " <Endereco>Av. Braz Leme</Endereco>"
cScript += " <Numero>1361</Numero>"
cScript += " <Data>22-03-2005</Data>"
cScript += " <Itens>"
cScript += " <Item>"
cScript += " <Produto>Prothues</Produto>"
cScript += " <Quantidade>1</Quantidade>"
cScript += " <Preco>100.00</Preco>"
cScript += " </Item>"
cScript += " <Item>"
cScript += " <Produto>ERP</Produto>"
cScript += " <Quantidade>0</Quantidade>"
cScript += " <Preco>0</Preco>"
cScript += " </Item>"
cScript += " </Itens>"
cScript += "</pedido>"
Return cScript
|