4D v13.4

XML DECODE

Inicio

 
4D v13.4
XML
XML DECODE

XML DECODE 


 

XML DECODE ( valor XML ; objeto4D ) 
Parámetro Tipo   Descripción
valor XML  Texto in Valor de tipo texto proveniente de una estructura XML
objeto4D  Campo, Variable in 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:    

ValorEjemplosConversió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>Boolean: True/False
BLOBBase64 decoding
ImágenesBase64 decoding + BLOB to picture command
Fechas2009-10-25T01:03:20+01:00Supresión de la parte hora y de la zona horaria: !10/25/2009!
Horas2009-10-25T01:03:20+01:00Supresión de la parte fecha y de la zona horaria: ?01:03:20?

Ejemplo  

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 Start Document)

 
PROPIEDADES 

Producto: 4D
Tema: XML
Número 1091

 
INDEX

Lista alfabética de los comandos

 
HISTORIA 

Creado por: 4D v12

 
VER TAMBIÉN 

BASE 64 ENCODE
BASE64 DECODE