/*No exemplo seguinte os códigos da string contendo o xml são convertidos e, em seguida, mantém-se a posicão no nó
<itens> e a função é acionada em busca de elementos <item> como filhos de <itens>.N este caso, a função retorna um
array, pois existe mais de um node do tipo <item>, obtendo oXML[1] e oXML[2].*/
#INCLUDE "TOTVS.CH"
#INCLUDE "XMLXFUN.CH"
User Function ExeXML()
Local cError := ""
Local cWarning := ""
Local oXML
//Gera o Objeto XML ref. ao script
oXML := XmlParser( GeraXML(), "_", @cError, @cWarning )
//Adquiro o elemento
oXML := XmlGetChild(oXML:_PEDIDO, 5) // pega o 5º elemento a partir do elemento PEDIDO, o conteúdo da tag "Itens"
oXML := XmlChildEx(oXML, "_ITEM")
varinfo("Array", oXML)
// Tranforma o Objeto XML em arquivo
SAVE oXML XMLFILE "\xml\teste.xml"
Return oScript
Static Function GeraXML()
// Script XML a gerar objeto
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>2</Quantidade>"
cScript += " <Preco>50.00</Preco>"
cScript += " </Item>"
cScript += " </Itens>"
cScript += "</pedido>"
Return cScript