Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
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 (para saber mais veja a seção [#title id="733" anchor="4967352"/] ). São admitidas as expressões de rota abaixo:
Expressão | Ação |
/ | Determina o nodo raiz (rota absoluta) |
para[1] | Determina o primerro filho "para" do nodo de contexto |
para[last()] | Determina o último filho "para" do nodo de contexto |
É 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).
Se os elementos da rota de acesso não existirem, são criados. Se já existirem os elementos de rota, um novo nodo é agregado.
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(vRootRef;vElemRef)
vRootRef:=DOM Create XML Ref("RootElement")
vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
vElemRef:=DOM Create XML element(vRootRef;vxPath)
Se quisermos criar o elemento abaixo (contém os atributos): [#codeXML]<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
<Elem1>
<Elem2>
<Elem3 Font=Verdana Size=10> </Elem3>
<Elem3 Font=Verdana Size=8> </Elem3>
</Elem2>
</Elem1>
</RootElement>[#/codeRAW]
Para fazer isso, simplesmente ecrevemos:
C_TEXT(vRootRef;vElemRef)
C_TEXT($aAttrName1;$aAttrName2;$aAttrVal1;$aAttrVal2;$aAttrVal3)</p><p>$aAttrName1:="Font"
$aAttrName2:="Size"
$aAttrVal1:="Verdana"
$aAttrVal2:="10"
$aAttrVal3:="8"
vRootRef:=DOM Create XML Ref("RootElement")
vxPath:="/RootElement/Elem1/Elem2/Elem3"
vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal2)
vElemRef:=DOM Create XML element(vRootRef;vxPath;$aAttrName1;$aAttrVal1;$aAttrName2;$aAttrVal3)
Se quiser inserir um elemento depois, pode escrever:
vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
vElemRef:=DOM Create XML element(vRootRef;vxPath;"Font";"Arial")
Temos então:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<RootElement>
<Elem1>
<Elem2>
<Elem3 Font=Verdana Size=10> </Elem3>
<Elem3 Font=Arial> </Elem3>
<Elem3 Font=Verdana Size=8> </Elem3>
</Elem2>
</Elem1>
</RootElement>
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 v20 R7)