4D v13.4

XML DECODE

Home

 
4D v13.4
XML
XML DECODE

XML DECODE 


 

XML DECODE ( xmlValue ; 4Dobject ) 
Parameter Type   Description
xmlValue  Text in Text type value coming from an XML structure
4Dobject  Field, Variable in 4D variable or field receiving the converted XML value

The XML DECODE command converts a value stored as an XML string into a 4D typed value. The conversion is carried out automatically according to the following rules:    

ValueExamplesConversion on English system
number<Price>8,5</Price><Price>8.5</Price>Real: 8.5
Boolean<Double>1</Double> <Double>0</Double> or <Double>true</Double> <Double>false</Double>Boolean: True/False
BLOBBase64 decoding
PictureBase64 decoding + BLOB to picture command
Dates2009-10-25T01:03:20+01:00Deletion of time part as well as time zone: !10/25/2009!
Time2009-10-25T01:03:20+01:00Deletion of date part as well as time zone: ?01:03:20?

Example  

Importing data from an XML document in which values are stored as attributes.
Example of XML document:

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

 
PROPERTIES 

Product: 4D
Theme: XML
Number: 1091

 
INDEX

Alphabetical list of commands

 
HISTORY 

Created: 4D v12

 
SEE ALSO 

BASE64 DECODE
BASE64 ENCODE