4D v16.3

DOM Create XML element

Página Inicial

 
4D v16.3
DOM Create XML element

DOM Create XML element 


 

DOM Create XML element ( refElemento ; xRota {; nomeAtrib ; valorAtrib} {; nomeAtrib2 ; valorAtrib2 ; ... ; nomeAtribN ; valorAtribN} ) -> Resultado 
Parâmetro Tipo   Descrição
refElemento  String in Referência do elemento Root XMLK
xRota  Texto in Caminho xRota do elemento XML a ser criado
nomeAtrib  String in Atributo a estabelecer
valorAtrib  String, Booleano, Inteiro longo, Real, Hora, Data in Novo valor de atributo
Resultado  String in Referência do elemento XML criado

O comando DOM Create XML element  permite criar um novo elemento no elemento XML refElemento na localização definida pelo parâmetro xRota e lhe adicionar atributos se é necessário.

Passe em refElemento a referência do elemento raiz (criado, por exemplo com a ajuda do comando DOM Create XML Ref).

Em xRota, passe a rota de acesso do elemento a criar em notação XPath (ver o parágrafo “Uso da notação XPath” na seção Visão Geral dos comandos XML DOM ). Se os elementos da rota de acesso não existirem, são criados.

É possível passar diretamente em xRota um nome de elemento simples com o objetivo de criar um subelemento a partir do elemento atual (ver o exemplo 3).

Nota: Se você definiu um ou mais espaços de nome (namespaces) para a árvore designada por refElemento (ver o comando DOM Create XML Ref ), deve prefixar o parâmetro xRota do nome de espaço a utilizar (por exemplo, “MeuNomeEspaço:MeuElemento”).

Pode passar nos parâmetros opcionais nomAtrib e valorAtrib um par atributo/valor (em forma de variáveis, campos ou valores literais). Pode passar tantos pares quantos queira.

O parâmetro valorAtrib pode ser de tipo texto ou de outro tipo (Booleano, inteiro, real, hora ou data). Se passar um valor de um tipo diferente ao tipo texto, 4D cuida da conversão para texto, de acordo aos seguintes princípios:

TipoExemplo do valor convertido
Boolean"true" ou "false"
Inteiro"123456"
Real"12.34" (o separador decimal é sempre ".")
Data"2006-12-04T00:00:00Z" (norma RFC 3339)
Hora "5233" (número de segundos)

O comando retorna como resultado a referência XML do elemento criado.

Se quisermos criar o elemento abaixo:
 

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
   <Elem1>
      <Elem2>
         <Elem3> </Elem3>
         <Elem3> </Elem3>
      </Elem2>
   </Elem1>
</RootElement>

Para fazer isso, simplesmente escrevemos:

 C_TEXT(vRefRaiz;vRefElem)
 vRefRaiz:=DOM Create XML Ref("RootElement")
 vxPath:="/RootElement/Elem1/Elem2/Elem3"
 vRefElem:=DOM Create XML element(vRefRaiz;vxPath)
 vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
 vRefElem:=DOM Create XML element(vRefRaiz;vxPath)

Queremos criar o elemento abaixo (contém os atributos):

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
   <Elem1>
      <Elem2>
         <Elem3 Font=Verdana Size=10> </Elem3>
      </Elem2>
   </Elem1>
</RootElement>

Para fazer isso, simplesmente escrevemos:

 C_TEXT(vRefRaiz;vRefElem)
 C_TEXT(80;$aAtribNom1;$aAtribNom2;$aAtribVal1;$aAtribVal2)
 $aAtribNom1:="Font"
 $aAtribNom2:="Size"
 $aAtribVal1:="Verdana"
 $aAtribVal2:="10"
 
 vRefRaiz:=DOM Create XML Ref("RootElement")
 vxPath:="/RootElement/Elem1/Elem2/Elem3"
 vRefElem:=DOM Create XML element(vRefRaiz;vxPath;$aAtribNom1;$aAtribVal1;$aAtribNom2;$aAtribVal2)

Queremos criar e exportar a seguinte estrutura:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<Root>
   <Elem1>Olá</Elem1>
</Root>

Queremos utilizar a sintaxe baseada em um nome de elemento simples. Para fazer isso, simplesmente escrevemos:

 C_TEXT($root)
 C_TEXT($ref1)
 
 $root:=DOM Create XML Ref("Raiz")
 $ref1:=DOM Create XML element($root;"Elem1")
 DOM SET XML ELEMENT VALUE($ref1;"Olá")
 DOM EXPORT TO FILE($root;"meudoc.xml")
 DOM CLOSE XML($root)

Se o comando for executado corretamente, a variável sistema OK assume o valor 1. Do contrário, assume o valor 0 e um erro é gerado.

Um erro é gerado quando:

  • A referência do elemento raiz não for válida.
  • O nome do elemento a ser criado for inválido (por exemplo, se começar por um número).



Ver também 

DOM Create XML element arrays
DOM Get XML element
DOM REMOVE XML ELEMENT

 
PROPRIEDADES 

Produto: 4D
Tema: XML DOM
Número 865

Este comando modifica a variável sistema OKEste comando modifica a variável sistema ErrorThis command can be run in preemptive processes

 
HISTÓRIA 

Modificado: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)