Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v20 R7
DOM Create XML element

DOM Create XML element 


 

DOM Create XML element ( elementRef ; xRuta {; nomAtrib ; valorAtrib} {; nomAtrib2 ; valorAtrib2 ; ... ; nomAtribN ; valorAtribN} ) -> Resultado 
Parámetro Tipo   Descripción
elementRef  Cadena in Referencia del elemento XML raíz
xRuta  Texto in Ruta XPath del elemento XML a crear
nomAtrib  Cadena in Atributo a definir
valorAtrib  Cadena, Booleano, Entero largo, Real, Hora, Fecha in Nuevo valor del atributo
Resultado  Cadena in Referencia del elemento XML creado

El comando DOM Create XML element permite crear un nuevo elemento en el elemento XML refElement en la ubicación definida por el parámetro xRuta y añadirle atributos si es necesario.

Pase en refElement la referencia del elemento raíz (creado, por ejemplo  utilizando el comando DOM Create XML Ref).

En xRuta, pase la ruta de acceso del elemento a crear en notación XPath (para mayor información, ver la sección Uso de la notación XPath (DOM)). Se admiten las siguientes expresiones de ruta:

ExpresiónAcción
/Designa el nodo raíz (ruta absoluta)
para[1]Designa el primer hijo para del nodo de contexto
para[last()]Designa el último hijo para del nodo de contexto

Nota de compatibilidad: a partir de la v18 R3, la implementación de XPath en 4D es más compatible. Por razones de compatibilidad, la implementación no estándar anterior se mantiene de forma predeterminada en las bases convertidas. Si desea beneficiarse de las funcionalidades extendidas en sus bases convertidas, debe seleccionar la opción de compatibilidad Utilizar XPath estándar de Página Compatibilidad

Es posible pasar directamente en xRuta un nombre de elemento simple con el fin de crear un subelemento a partir del elemento actual (ver el ejemplo 3).

Si los elementos de la ruta de acceso no existen, son creados. Si ya existen los elementos de ruta, se agrega un nuevo nodo.

Nota: si definió uno o más espacios de nombre (namespaces) para el árbol designado por refElement (ver el comando DOM Create XML Ref), debe preceder el parámetro xRuta del nombre de espacio a utilizar (por ejemplo, “MiNombreEspacio:MiElemento”).

Puede pasar pares de valor atributo/atributo (en forma de variables, campos o valores literales) en los parámetros opcionales nomAtributo y valorAtributo.  Puede pasar tantos pares como quiera.

El parámetro valorAtributo puede ser de tipo texto o de otro tipo (Booleano, entero, real, hora o fecha). Si pasa un valor de un tipo diferente al tipo texto, 4D se encarga de la conversión a texto, de acuerdo a los siguientes principios:

TipoEjemplo de valor convertido
Booleano"true" o "false"
Entero"123456"
Real"12.34" (el separador decimal siempre es ".")
Fecha"2006-12-04T00:00:00Z" (estándar RFC 3339)
Hora"5233" (Número de segundos)

El comando devuelve en resultado la referencia XML del elemento creado.

Queremos crear el siguiente elemento:

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

Para hacerlo, simplemente escribimos:

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

Queremos crear el siguiente elemento (contiene los 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 hacerlo, simplemente escribimos:

 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)

Si desea insertar un elemento después, puede escribir:

 vxPath:="/RootElement/Elem1/Elem2/Elem3[2]"
 vElemRef:=DOM Create XML element(vRootRef;vxPath;"Font";"Arial")

Tiene entonces:

<?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 crear y exportar la siguiente estructura:

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

Queremos utilizar la sintaxis basada en un nombre de elemento simple. Para hacerlo, simplemente escribimos:

 C_TEXT($root)
 C_TEXT($ref1)
 
 $root:=DOM Create XML Ref("Raíz")
 $ref1:=DOM Create XML element($root;"Elem1")
 DOM SET XML ELEMENT VALUE($ref1;"Hola")
 DOM EXPORT TO FILE($root;"midoc.xml")
 DOM CLOSE XML($root)

Si el comando se ejecutó correctamente, la variable sistema OK toma el valor 1. De lo contrario, toma el valor 0 y se genera un error.

Se genera un error cuando:

  • La referencia del elemento raíz no es válida.
  • El nombre del elemento a crear es inválido (por ejemplo, si comienza por un número).



Ver también 

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

 
PROPIEDADES 

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

Este comando modifica la variable sistema OKEste comando modifica la variable sistema ErrorThis command can be run in preemptive processes

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Modificado: 4D v11 SQL

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v20 R7)