4D v16.3XML DECODE |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
XML DECODE
|
XML DECODE ( valor XML ; objeto4D ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
valor XML | Texto |
![]() |
Valor de tipo texto proveniente de una estructura XML | |||||
objeto4D | Campo, Variable |
![]() |
Variable o campo 4D que recibe el valor XML convertido | |||||
El comando XML DECODE convierte un valor guardado como una cadena XML en un valor 4D. La conversión se efectúa automáticamente en función de las siguientes reglas:
Valor | Ejemplos | Conversión en sistema inglés |
numérico | <Price>8,5</Price><Price>8.5</Price> | Real: 8.5 |
Booleano | <Double>1</Double> <Double>0</Double> o <Double>true</Double> <Double>false</Double> | Booleano: True/False |
BLOB | Decodificación Base64 | |
Imágenes | Decodificación Base64 + comando BLOB to picture | |
Fechas | 2009-10-25T01:03:20+01:00 | !10/25/2009! -> Supresión de la parte hora y de la zona horaria |
Horas | 2009-10-25T01:03:20+01:00 | ?01:03:20? -> Supresión de la parte fecha. Atención: la zona horaria se tiene en cuenta si es diferente de la hora local. Por ejemplo: "2009-10-25T01:03:20+05:00" se decodificará ?21:03:20? en UTC+1 hora local |
Importación de datos desde un documento XML en el cual los valores se guardan como atributos.
Ejemplo del documento XML:<CD Date="2003-01-01T00:00:00Z" Description="This double CD reissued by EMI in 1995 combines 4 Stabat mater hymns. One by Rossini interpreted by the Berlin Symphony Orchestra, directed by Karl Forster. Followed by a work of Verdi, by the Philharmonic Orchestra, directed by Carlo Maria Giulini. On the second CD, you will find Francis Poulenc interpreted by Régine Crespin. This compilation ends with a little-known version, that of the Polish composer Karol Szymanowski. Polish National Radio Symphony Orchestra directed by Antoni Wit" Double="true" Duration="7246" Type="Sacred music" CD_ID="5" Performer="Various" Price="8.5" Title="4 Stabat mater"/>
Repeat
MyEvent:=SAX Get XML node(DocRef)
Case of
:(MyEvent=XML Start Element)
ARRAY TEXT(arrAttrNames;0)
ARRAY TEXT(arrAttrValues;0)
SAX GET XML ELEMENT(DocRef;vName;vPrefix;arrAttrNames;arrAttrValues)
If(vName="CD")
CREATE RECORD([CD])
For($i;1;Size of array(arrAttrNames))
$attrName:=arrAttrNames{$i}
Case of
:($attrName="CD_ID")
XML DECODE(arrAttrValues{$i};[CD]CD_ID)
:($attrName="Title")
[CD]Work:=arrAttrValues{$i}
:($attrName="Price")
XML DECODE(arrAttrValues{$i};[CD]Price)
:($attrName="Date")
XML DECODE(arrAttrValues{$i};[CD]Date entered)
:($attrName="Duration")
XML DECODE(arrAttrValues{$i};[CD]Total_duration)
:($attrName="Double")
XML DECODE(arrAttrValues{$i};[CD]Double_CD)
End case
End for
End if
...
End case
Until(MyEvent=XML End Document)
Producto: 4D
Tema: XML
Número
1091
Creado por: 4D v12
Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)