Mam XML o nieznanej strukturze i chcę zastosować ST (Simple Transformation) na nim, aby "jakoś" to treść z XML do struktur ABAP.SAP Prosta transformacja z nieznanym XML
Teraz mam następujące sprawozdania z badań:
report ztbu_st_with_copy.
data: lf_xml type string.
concatenate '<tab><obj>'
'<id>A1</id>'
'<first>Erste</first>'
'<second>Zweite</second>'
'</obj><obj>'
'<id>B2</id>'
'<item>'
'<here>Tady</here>'
'<there>Tam</there>'
'</item>'
'</obj>'
'</tab>'
into lf_xml.
types: begin of ys_obj,
id type string,
rest type string,
end of ys_obj,
yt_obj type standard table of ys_obj.
data: lt_obj type yt_obj.
call transformation ztbu_st_copy_test
source xml lf_xml
result root = lt_obj.
uline.
data: ls_obj like line of lt_obj.
loop at lt_obj into ls_obj.
write:/sy-tabix, ls_obj-id.
endloop.
uline.
i mam następujący ST transformacji ZTBU_ST_COPY_TEST (jednego o nazwie powyżej):
<?sap.transform simple?>
<tt:transform xmlns:tt="http://www.sap.com/transformation-templates">
<tt:root name="ROOT"/>
<tt:template>
<tab>
<tt:loop ref=".ROOT" name="obj">
<obj>
<id>
<tt:value ref="$obj.ID" />
</id>
<tt:skip />
</obj>
</tt:loop>
</tab>
</tt:template>
</tt:transform>
Teraz działa dobrze i będzie to przynieść identyfikatory do pola tabeli LT_OBJ. Jednak reszta jest ignorowana z powodu użycia <TT:SKIP>
. Moim celem byłoby uzyskanie reszty dokumentu XML (te FIRST, SECOND, HERE i THERE lub dowolne dowolne XML) do REST pola w "pewnym" formacie - prawdopodobnie jako zgrubny XML przechowywany w zmiennej STRING.
Rozumiem, że muszę zastąpić <TT:SKIP>
czymś mądrzejszym, ale nie mogę zrozumieć, co to powinno być ... Jakiś pomysł?
Nota boczna: tak, wiem, lepiej byłoby użyć XSLT lub czegoś innego, zamiast ST, ale nie mam wyboru i muszę zrobić to za pomocą ST.
Nie nazwałbym tego "nieznanym XML". Wydaje się, że zakładasz, że XML zaczyna się od i ma w nim numer , każdy z jednym i innymi nieznanymi elementami. Czy można to bezpiecznie założyć? –
Eric
Tak, można bezpiecznie założyć,,i są znane, ale jestem po reszcie rzeczy i są one naprawdę nieznane ... –