Question

My XML File is like this

<A_VERY_VERY_LONG_TITLE xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
    <DATA_LIST>
        <DATA_LIST>         
            <ELEMENT_NO1 xmlns="">ABCDEFG_1</ELEMENT_NO1>
            <ELEMENT_NO2 xmlns="">1234567_1</ELEMENT_NO2>
            <ELEMENT_NO3 xmlns=""/>         
        </DATA_LIST>
        <DATA_LIST>
            <ELEMENT_NO1 xmlns="">ABCDEFG_2</ELEMENT_NO1>
            <ELEMENT_NO2 xmlns="">1234567_2</ELEMENT_NO2>
            <ELEMENT_NO3 xmlns="">A1B2C3D_2</ELEMENT_NO3>       
        </DATA_LIST>
        <DATA_LIST>
            <ELEMENT_NO1 xmlns="">ABCDEFG_3</ELEMENT_NO1>
            <ELEMENT_NO2 xmlns="">1234567_3</ELEMENT_NO2>
            <ELEMENT_NO3 xmlns="">A1B2C3D_3</ELEMENT_NO3>       
        </DATA_LIST>
    </DATA_LIST>
    <SOMETHING>SOME-VALUE</SOMETHING>
    <SOMETHING_ELSE>SOME-OTHER-VALUE</SOMETHING_ELSE>
</A_VERY_VERY_LONG_TITLE>

And my code sample is

DEFINE VARIABLE lOK      AS LOGICAL NO-UNDO.

DEFINE TEMP-TABLE DATA_LIST NO-UNDO
    FIELD ELEMENT_NO1           AS CHARACTER
    FIELD ELEMENT_NO2           AS CHARACTER
    FIELD ELEMENT_NO3           AS CHARACTER   .

DEFINE DATASET DATA FOR DATA_LIST.

lOk = DATASET DATA:READ-XML("file",                /* SourceType             */
                            "C:\xmlFile.xml",      /* File                   */
                            "append",              /* ReadMode               */
                            ?,                     /* SchemaLocation         */
                            ?,                     /* OverrideDefaultMapping */
                            ?,                     /* FieldTypeMapping       */
                            ?).                    /* VerifySchemaMode       */

FOR EACH DATA_LIST:
    DISPLAY DATA_LIST.ELEMENT_NO1   FORMAT "x(20)"
            DATA_LIST.ELEMENT_NO2   FORMAT "x(20)"
            DATA_LIST.ELEMENT_NO3   FORMAT "x(20)"
    WITH WIDTH 120  .

END.

I can access DATA_LIST elements succesfully. But I can't reach data "SOMETHING" and "SOMETHING_ELSE" . I've tried to Define a Temp-Table for this values too but it couldn't work. (I'm getting an empty screen.)

Thanks for help.

Was it helpful?

Solution

The something and something else are outside the definition of the Data_List table. Try this:

DEFINE VARIABLE lOK      AS LOGICAL NO-UNDO.

DEFINE TEMP-TABLE DATA_LIST NO-UNDO
    FIELD ELEMENT_NO1           AS CHARACTER
    FIELD ELEMENT_NO2           AS CHARACTER
    FIELD ELEMENT_NO3           AS CHARACTER   .

Define Temp-Table A_VERY_VERY_LONG_TITLE no-undo
    field SOMETHING as character
    field SOMETHING_ELSE as character.

DEFINE DATASET DATA FOR DATA_LIST, A_VERY_VERY_LONG_TITLE.

lOk = DATASET DATA:READ-XML("file",                /* SourceType             */
                            "C:\xmlFile.xml",      /* File                   */
                            "append",              /* ReadMode               */
                            ?,                     /* SchemaLocation         */
                            ?,                     /* OverrideDefaultMapping */
                            ?,                     /* FieldTypeMapping       */
                            ?).                    /* VerifySchemaMode       */

FOR EACH DATA_LIST:
    DISPLAY DATA_LIST.ELEMENT_NO1   FORMAT "x(20)"
            DATA_LIST.ELEMENT_NO2   FORMAT "x(20)"
            DATA_LIST.ELEMENT_NO3   FORMAT "x(20)"
    WITH WIDTH 120  .
END.
For EACH A_VERY_VERY_LONG_TITLE:
    DISPLAY A_VERY_VERY_LONG_TITLE.SOMETHING format "x(40)"
            A_VERY_VERY_LONG_TITLE.SOMETHING_ELSE format "x(40)" 
    WITH WIDTH 220.
END.

It worked for me :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top