Добрый день!
Подскажите пожалуйста, как работать с вложенными структурами в XSLT преобразованиях?
Есть структура, одно из полей которой - ссылка на внутр.таблицу. В основе внутр.таблицы - сама эта структура.
Хочу получить на основе структуры XML. Почему-то, после преобразования, в результирующей строке появляются лишние данные (данные той самой внутр. таблицы).
вот программа
Code:
TYPES
: BEGIN OF tdeep_struct
, name TYPE string
, date TYPE sy-datum
, rf_child_list TYPE REF TO data
, END OF tdeep_struct
, t_deep_struct TYPE STANDARD TABLE OF tdeep_struct
WITH NON-UNIQUE DEFAULT KEY
.
DATA
: gtree type tdeep_struct
, gchild type tdeep_struct
, gxml_str type string
.
FIELD-SYMBOLS
: <gt_child_list> TYPE t_deep_struct
.
START-OF-SELECTION.
gtree-name = 'Root'.
gtree-date = sy-datum.
CREATE DATA gtree-rf_child_list TYPE t_deep_struct.
ASSIGN gtree-rf_child_list->* TO <gt_child_list>.
gchild-name = 'Child'.
gchild-date = sy-datum + 20.
APPEND gchild TO <gt_child_list>.
call TRANSFORMATION ZTRANSFORM
SOURCE
param = gtree
RESULT XML gxml_str.
вот преобразование
Code:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:strip-space elements="*"/>
<xsl:template match="PARAM">
<NAME>
<xsl:value-of select="NAME"/>
</NAME>
<DATE>
<xsl:value-of select="DATE"/>
</DATE>
</xsl:template>
</xsl:transform>
На выходе ожидаю увидеть
Code:
<?xml version="1.0" encoding="utf-16"?>
<NAME>Root</NAME>
<DATE>2014-04-01</DATE>
а получаю
Code:
<?xml version="1.0" encoding="utf-16"?>
<NAME>Root</NAME>
<DATE>2014-04-01</DATE>
Child2014-04-21
Что я делаю не так?