[ABAP] XML -> itab

TYPES: BEGIN OF s_person,
         name  TYPE string,
         title TYPE string,
         age   TYPE i,
       END OF s_person.

TYPES: t_person TYPE STANDARD TABLE OF s_person WITH DEFAULT KEY.

DATA(xml) = |<?xml version="1.0" encoding="UTF-8"?>| &&
            |<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">| &&
            |  <asx:values>| &&
            |    <VALUES>| &&
            |      <item>| &&
            |        <NAME>Horst</NAME>| &&
            |        <TITLE>Herr</TITLE>| &&
            |        <AGE>30</AGE>| &&
            |      </item>| &&
            |      <item>| &&
            |        <NAME>Jutta</NAME>| &&
            |        <TITLE>Frau</TITLE>| &&
            |        <AGE>35</AGE>| &&
            |      </item>| &&
            |      <item>| &&
            |        <NAME>Ingo</NAME>| &&
            |        <TITLE>Herr</TITLE>| &&
            |        <AGE>31</AGE>| &&
            |      </item>| &&
            |    </VALUES>| &&
            |  </asx:values>| &&
            |</asx:abap>|.

* XML -> ABAP (itab)
DATA(it_persons) = VALUE t_person( ).

CALL TRANSFORMATION id SOURCE XML xml RESULT values = it_persons.

IF lines( it_persons ) > 0.
  WRITE: / it_persons[ 1 ]-name.
endif.