4D v16.3DOM Create XML element |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
DOM Create XML element
|
DOM Create XML element ( refElemento ; xRota {; nomeAtrib ; valorAtrib} {; nomeAtrib2 ; valorAtrib2 ; ... ; nomeAtribN ; valorAtribN} ) -> Resultado | ||||||||
Parâmetro | Tipo | Descrição | ||||||
refElemento | String |
![]() |
Referência do elemento Root XMLK | |||||
xRota | Texto |
![]() |
Caminho xRota do elemento XML a ser criado | |||||
nomeAtrib | String |
![]() |
Atributo a estabelecer | |||||
valorAtrib | String, Booleano, Inteiro longo, Real, Hora, Data |
![]() |
Novo valor de atributo | |||||
Resultado | String |
![]() |
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.
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:
Tipo | Exemplo 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:
DOM Create XML element arrays
DOM Get XML element
DOM REMOVE XML ELEMENT
Produto: 4D
Tema: XML DOM
Número
865
Modificado: 4D v11 SQL
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)