Текущее время: Вс, мар 24 2019, 22:25

Часовой пояс: UTC + 4 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: xslt трансформация, чтобы распарсить xml файл.
СообщениеДобавлено: Вт, мар 12 2019, 12:34 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 09:40
Сообщения: 152
Добрый день!
Может кто подскажет:
Есть xml файл в котором хранятся пришедшие заказы и их позиции. Хочу распарсить этот xml файл и получить на выходе
заголовки и позиции пришедших заказов. Но почему-то при применении моей xslt-трансформации заполняются только таблица заголовков заказа, а вложенная таблица позиций не заполняется(lt_table01-lines).
Пример входящего xml файла:
Code:
<?xml version="1.0" encoding="utf-8"?>
<Root>
  <Order>
    <DOC_NUMBER>1</DOC_NUMBER>
    <DATE>2019-02-25</DATE>
    <Lines>
      <Line>
        <CODE>22</CODE>
      </Line>
      <Line>
        <CODE>23</CODE>
      </Line>
    </Lines>
  </Order>
    <DOC_NUMBER>2</DOC_NUMBER>
    <DATE>2019-02-25</DATE>
    <Lines>
      <Line>
        <CODE>24</CODE>
      </Line>
    </Lines>
  <Order>
  </Order>
</Root>


xslt трансформация:

Code:
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:asx="http://www.sap.com/abapxml" version="1.0">

  <xsl:strip-space elements="*"/>
  <xsl:output indent="yes"/>

  <xsl:template match="Root">
    <asx:abap version="1.0">
      <asx:values>
        <TABLE01>
          <xsl:for-each select="Order">
            <Line-Item>
              <DOC_NUMBER>
                <xsl:value-of select="DOC_NUMBER"/>
              </DOC_NUMBER>
              <DATE>
                <xsl:value-of select="DATE"/>
              </DATE>
              <Lines>
                  <xsl:for-each select="Lines/Line">
                    <Line-Item>
                      <CODE>
                        <xsl:value-of select="CODE"/>
                      </CODE>   
                    </Line-Item>
                  </xsl:for-each>
              </Lines>
            </Line-Item>
          </xsl:for-each>
        </TABLE01>
      </asx:values>
    </asx:abap>
  </xsl:template>

</xsl:transform>


Программа abap:
Code:

TYPES : BEGIN OF ts_table02,
          code    TYPE string,
        END OF ts_table02.

DATA: BEGIN OF ls_table01,
        doc_number        TYPE string,
        date              TYPE string,
        lines             TYPE TABLE OF ts_table02,
      END OF ls_table01.
DATA lt_table01 LIKE TABLE OF ls_table01.
DATA lt_table02 TYPE TABLE OF ts_table02.
i_xslt = 'ZORDER'.
TRY.
    ""Десериализация с помощью xslt трансформации
    CALL TRANSFORMATION  (i_xslt)
      SOURCE XML lv_xml_content
       RESULT
             table01 = lt_table01.


И на выходе вложенная таблица позиций не заполнена(lt_table01-lines).


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: xslt трансформация, чтобы распарсить xml файл.
СообщениеДобавлено: Вт, мар 12 2019, 15:54 
Специалист
Специалист

Зарегистрирован:
Пн, мар 12 2012, 09:40
Сообщения: 152
Разобрался, нельзя называть вложенную таблицу ключевым словом Lines.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB