Árvore de páginas

Versões comparadas

Chave

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

...

Portuguese

Pagetitle
XmlDelNode
XmlDelNode

Função: XmlDelNode

Exclui

um

de

um

objeto

XML

-

eXtensible

Markup

Language

(Linguagem

extensível

de

formatação).

Sintaxe

Bloco de código
collapsefalse
XmlDelNode(
< oParent>, < cNode> ) --> lRet 
 < @oParent > )

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
oParentObjetoIndica o nó pai do elemento que será excluído.X
 
X
cNode
cName
Caracter
CaractereIndica o nome
real
do elemento
do nó
que será excluído.X

Retorno

 

Nome

 

Tipo

Retorno

Descrição

lRet

(logico)

lógico

Retorna verdadeiro (.T.), se encontrar um elemento e excluí-lo; caso contrário, falso (.F.).

Observações

  • Essa
função excluirá
  • função excluirá todos os nós que contém o nome igual ao nó informado para ser excluído a partir do nó indicado para pesquisa.
Para isso, informa
  • Informa-se através de parâmetro um elemento do objeto que contém a estrutura do XML (um nó qualquer).
    Este não precisa ser
obrigatoriamente a raiz da estrutura.
  • obrigatoriamente a raiz da estrutura, pois a função procurará, recursivamente.
  • Em seguida, deve-se informar o nome do nó que deseja excluir,
pois a função procurará, recursivamente,
  • a partir do nó informado
, o elemento que possui o nome do nó que será excluído dentro da estrutura.
  • .

Exemplos

Bloco de código
languagecpp
themeEclipse
linenumberstrue
collapsefalse
#include "protheus.ch"
Importante
Não use essa função, pois ela modifica a estrutura do objeto XML, apresentando comportamentos indesejados após a remoção do elemento.

 

/* Neste exemplo, criamos uma string contendo o xml, em seguida parseamos ele, e agora vamos deletar um nodo do objeto
retornado pela xmlParser, note que no exemplo passei o nodo '<Itens>' como raiz da estrutura a ser pesquisada e
queremos deletar o nodo '<Item>', que é elemento de '<Itens>'. A função XmlDelNode tem como objetivo deletar todos os
elementos '<Item>' que encontrar dentro da estrutura passada para inicio da pesquisa. */
#INCLUDE "PROTHEUS.CH"
#INCLUDE "XMLXFUN.CH"



User Function 
getObjXML
Exemplo()

Local cError

  
  local cError := ""

Local

  local cWarning := ""

Local

 
oXml := NIL
//Gera o Objeto XML
 local oXml := 
XmlParser( GeraXML(), "_", @cError, @cWarning )
if !XmlDelNode( oXml:_PEDIDO, "_DATA" )
conout("Nao foi possivel excluir")
EndIf
// Tranforma o Objeto XML em arquivo ou string
// Grava o arquivo em um diretório \xml a partir do rootPath
SAVE oXml XMLFILE "\teste.xml"
Return oXml
// função para gerar uma string contendo um xml
Static Function GeraXML()
Local cScript
nil
  local cName := "_NOMECLIENTE"

  cXml := '<?xml version="1.0" encoding="UTF-8"?>'

cScript

  cXml += "<pedido>"

cScript

  cXml += "  <NomeCliente>Microsiga Software S/A</NomeCliente>"

cScript

  cXml += "  <Endereco>Av. Braz Leme</Endereco>"

cScript

  cXml += "  <Numero>1361</Numero>"

cScript

  cXml += "  <Data>22-03-2005</Data>"

cScript

  cXml += "  <Itens>"

cScript

  cXml += "    <Item>"

cScript

  cXml += "      <Produto>Prothues</Produto>"

cScript

  cXml += "      <Quantidade>1</Quantidade>"

cScript

  cXml += "      <Preco>100.00</Preco>"

cScript

  cXml += "    </Item>"

cScript

  cXml += "    <Item>"

cScript

  cXml += "      <Produto>ERP</Produto>"

cScript

  cXml += "      
<Quantidade>2<
<Quantidade>0</Quantidade>"

cScript

  cXml += "      
<Preco>50.00<
<Preco>0</Preco>"

cScript

  cXml += "    </Item>"

cScript

  cXml += "  </Itens>"

cScript

  cXml += "</pedido>"

Return cScript


  oXml := XmlParser( cXml, "_", @cError, @cWarning )
  // Remove o elemento <NomeCliente> do xml
  lxml := XmlDelNode(oXml:_PEDIDO, cName)
  // Tranforma o Objeto XML em string
  SAVE oXml XMLSTRING cXML
  Conout(cXML)
return

Veja também

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