私は未知の構造のXMLを持っており、XMLからABAP構造へのコンテンツを "何らかの形で"取得するためにST(Simple Transformation)を適用したいと考えています。未知のXMLを使ったSAPのシンプルな変換
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.
と私は、次のしているST変換ZTBU_ST_COPY_TEST(上記と呼ばれる1):
<?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>
は、今では正常に動作し、それがにIDを持って来る今の私は、試験報告書以下のいる
テーブルLT_OBJのフィールドしかし、残りは<TT:SKIP>
の使用のため無視されます。私の目標は、残りのXML文書(これらのFIRST、SECOND、HERE、THEREまたは任意のXML)をフィールド「REST」に「some」形式で取得することです。おそらくSTRING変数に格納された大雑把なXMLです。
私は<TT:SKIP>
をよりスマートなものに置き換える必要があることを理解していますが、それが何であるべきかを理解することはできません。
サイドノート:はい、私は知っていますが、STの代わりにXSLTなどを使用する方が良いでしょうが、選択肢がなく、STを使用して作成する必要があります。
私は「未知のXML」と呼んでいません。あなたは、XMLがで始まり、という数字を持っていると仮定しているようです。それぞれはと他の未知の要素を持っています。これは仮定するのが安全ですか? –
Eric
はい、これは、、、が知られていても安全ですが、残りの部分は後であり、本当に不明です... –