XMLDECOD: Cómo descodificar caracteres con codificación XML

Cómo:

La función XMLDECOD descodifica los cinco siguientes caracteres con codificación XML estándar, cuando aparecen en una cadena:

Nombre del carácter

Carácter

Representación con codificación XML

ampersand

&

&

signo de mayor a

>

>

signo de menor a

<

&lt;

comillas dobles

"

&quot;

comillas simples (apóstrofe)

'

&apos;



x
Sintaxis: Cómo Descodificar caracteres con codificación XML
XMLDECOD(inlength, source_string, outlength,  output)

donde:

inlength

Número entero

Es la longitud del campo que contiene la cadena de caracteres o es un campo que contiene la longitud.

source_string

Alfanumérico

Es el nombre del campo que contiene la cadena de caracteres de origen, o la cadena entre comillas simples (').

outlength

Número entero

Es la longitud de la cadena de caracteres de salida o un campo que contiene la longitud.

output

Número entero

Es el campo que contiene el resultado o el formato del valor de salida, entre comillas simples.



Ejemplo: Cómo descodificar caracteres con codificación XML

El archivo XMLFUNCS es de tipo .csv y contiene algunos caracteres no codificados, y otros con codificación XML. El archivo máster es:

FILE = XMLFUNCS, SUFFIX=COM,$
SEGNAME = SEG01, SEGTYPE=S1,$
FIELD=INSTRING, ALIAS=CHARS, USAGE=A30,ACTUAL=A30,$

Contenidos del archivo:

CHARS: &  < >  ,$
ENCODED: &amp; &gt;  ,$
ENCODED: &quot; &apos;   ,$
MIXED:  &amp;  < &gt;   ,$

XMLDECOD descodifica cualquier carácter con codificación XML que sea compatible. Tenga en cuenta que algunos visores descodifican automáticamente los valores codificados para la visualización, resultando en una salida con formato de texto simple (FORMAT WP):

FILEDEF XMLFUNCS DISK xmlfuncs.csv
DEFINE FILE XMLFUNCS
OUTSTRING/A30=XMLDECOD(30,INSTRING,30,'A30');
END
TABLE FILE XMLFUNCS
PRINT INSTRING OUTSTRING
ON TABLE PCHOLD FORMAT WP
ON TABLE SET PAGE NOPAGE

En la cadena de salida, los caracteres con codificación XML han quedado descodificados, mientras que los no codificados se han dejado como estaban en la cadena de entrada:

  INSTRING                        OUTSTRING          
  --------                        ---------                     
  CHARS: &  < >                   CHARS: &  < >                 
  ENCODED: &amp; &gt;             ENCODED: & >                  
  ENCODED: &quot; &apos;          ENCODED: " '                  
  MIXED:  &amp;  < &gt;           MIXED:  &  < >                

WebFOCUS