Текущее время: Ср, май 22 2019, 03:18

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


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


ВНИМАНИЕ!

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



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

Зарегистрирован:
Пн, мар 12 2012, 09:40
Сообщения: 153
Добрый день!
Может кто подскажет:
Есть 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
Сообщения: 153
Разобрался, нельзя называть вложенную таблицу ключевым словом Lines.


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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