Árvore de páginas

Versões comparadas

Chave

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

...

Portuguese

Pagetitle
XmlChildEx
XmlChildEx

Função: XmlChildEx

Retorna

um

ou

mais

nós

da

estrutura,

de

acordo

com

o

nome

do

elemento

procurado.

Sintaxe

Bloco de código
collapsefalse
XmlChildEx( <
oParent>
 oParent >, <
cProcura> ) --> xRet
 cProcura > )

Parâmetros

/Elementos

Nome

Tipo

Descrição

Obrigatório

Referência

oParent

Objeto

objeto

Indica o nó que será utilizado para iniciar a procura do elemento procurado.

X


cProcura

Caracter

caractere

Indica o nome do elemento que será procurado.

X


Retorno

Nome

Tipo

Descrição

xRet

(

qualquer

)

Retorna o objeto do nó, se a função encontrar apenas um elemento, ou um array de nós, se possuir mais de um elemento do mesmo nome; caso contrário, o retorno será nulo.

Observações

  • Ao especificar um elemento qualquer do objeto para a função, na qual será usado como base para busca apenas no primeiro subnível,
 a
  • a função
retornará todos
  • retornará todos os nós filhos que encontrar.
  • Essa função é útil para procurar um elemento filho quando existe mais de um elemento do mesmo tipo.
  • <cProcura> deve ser o nome que está na propriedade REALNAME da estrutura do obejto XML, ou seja, será a string passada como 2º parâmetro na função XMLParser/XMLParserFile seguido do nome do elemento em maiúsculo.
  • Pode-se utilizar essa função para alterar o posicionamento do objeto, para algum nó filho do atual, na estrutura do objeto XML - EXtensible Markup Language (Linguagem extensível de formatação).
  • Se for usado como retorno o mesmo objeto passado em <oParent>, seu conteúdo será substituído pelo conteúdo do elemento procurado, não sendo possível recuperar a informação anterior.

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
User Function Exemplo()

/*No exemplo seguinte os códigos da string contendo o xml são convertidos e, em seguida, mantém-se a posicão no node &ltitens> e a função é acionada em busca de elementos &ltitem> como filhos de &ltitens&gt.Neste caso, a função retorna um array, pois existe mais de um node do tipo &ltitem>, obtendo oScript[1] e oScript[2].*/
#INCLUDE "TOTVS.CH"
#INCLUDE "XMLXFUN.CH"
User Function ExeXML()

Local cError   := ""

Local cWarning := ""
Local oScript Local cFile := "" //a partir do rootpath do ambiente cFile := "\xml\pedido.xml" //

Local oXML

//Gera o Objeto XML ref. ao script
oScript

oXML := XmlParser( GeraXML(), "_", @cError, @cWarning )

//Adquiro o elemento
oXML := XmlGetChild(oXML:_PEDIDO, 5) // pega o  elemento a partir 
//Adquiro o
do elemento 
oScript := XmlGetChild(oScript:_
PEDIDO
, 
XmlChildCount( oScript:_PEDIDO )) oScript
o conteúdo da tag "Itens"
oXML := XmlChildEx(
oScript
oXML, 
"_ITEM")

varinfo("Array", 
oScript
oXML)

// Tranforma o Objeto XML em arquivo

SAVE 
oScript
oXML XMLFILE "\xml\teste.xml"
Return oScriptStatic


Static Function GeraXML()
// Script XML a gerar 
objetoLocal
objeto
Local cScript := '<?xml version="1.0" encoding="UTF-8"?>'
cScript += "
&ltpedido>
<pedido>"
cScript += "  
&ltNomeCliente&gtMicrosiga
<NomeCliente>Microsiga Software S/A</NomeCliente>"
cScript += "  
&ltEndereco&gtAv
<Endereco>Av. Braz Leme</Endereco>"
cScript += "  
&ltNumero&gt1361<
<Numero>1361</Numero>"
cScript += "  
&ltData&gt22
<Data>22-03-2005</Data>"
cScript += "  
&ltItens>
<Itens>"
cScript += "    
&ltItem>
<Item>"
cScript += "      
&ltProduto&gtProthues<
<Produto>Prothues</Produto>"
cScript += "      
&ltQuantidade&gt1<
<Quantidade>1</Quantidade>"
cScript += "      
&ltPreco&gt100
<Preco>100.00</Preco>"
cScript += "    </Item>"
cScript += "    
&ltItem>
<Item>"
cScript += "      
&ltProduto&gtERP<
<Produto>ERP</Produto>"
cScript += "      
&ltQuantidade&gt2<
<Quantidade>2</Quantidade>"
cScript += "      
&ltPreco&gt50
<Preco>50.00</Preco>"
cScript += "    </Item>"
cScript += "  </Itens>"
cScript += "</pedido>"
Return cScript
Return

Abrangência

Advanced Protheus 6.09 , Advanced Protheus 7.10 , Microsiga Protheus 8.11 , Protheus 10 , TOTVS Application Server 10

Veja também