sap系统中xml文件的两种转换方法Word下载.docx
- 文档编号:19121339
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:214.88KB
sap系统中xml文件的两种转换方法Word下载.docx
《sap系统中xml文件的两种转换方法Word下载.docx》由会员分享,可在线阅读,更多相关《sap系统中xml文件的两种转换方法Word下载.docx(11页珍藏版)》请在冰豆网上搜索。
l_attributeTYPEREFTOif_ixml_attribute,“XML属性
l_ostreamTYPEREFTOif_ixml_ostream,
l_factory
TYPEREFTOif_ixml_stream_factory.
TYPES:
BEGINOFxml_line,
data(256)TYPEx,
ENDOFxml_line.
xml_tableTYPETABLEOFxml_line,
xml_size
TYPEi.
l_rvalTYPEi.
START-OF-SELECTION.
PERFORMgetdata.
PERFORMcreate_xml.
PERFORMdownload.
*---------------------------------------------------------------------*
*
FORMgetdata
*
FORMgetdata.
SELECTmatnrmaktxFROMmakt
INTOTABLEitab_matnr
UPTO4ROWS
WHEREspras='
1'
.
SELECTclasskschlFROMm_wwgha
INTOTABLEitab_class
WHEREsprasIN('
'
E'
).
DELETEitab_classWHEREclass='
0'
.
APPENDitab_class."
演示空数据
ENDFORM.
FORMcreate_xml
FORMcreate_xml.
CLASScl_ixmlDEFINITIONLOAD.
l_ixml=cl_ixml=>
create().
CALLMETHODl_ixml->
create_encoding“创建Codepage对象
EXPORTING
byte_order
=0
character_set='
gb2312'
RECEIVING
rval
=l_encoding.
create_document“创建XML文件对象
=l_doc.
CALLMETHODl_doc->
set_encoding“为XML文件对象定义Codepage
encoding=l_encoding
create_simple_element“创建XML元素对象
name
='
Root'
parent
=l_doc
=l_root.
CALLMETHODl_root->
set_attribute“定义XML元素对象的数据
ATTRIBUTE'
value
sample'
=l_rval.
CALLMETHOD
l_doc->
create_comment“添加一行注释
comment='
'
上面ATTRIBUTE为属性示例'
=l_comment
append_child“添加子节点(注释行)
new_child=l_comment
=l_rval.
PERFORMfill_itab2xmlTABLES
itab_matnr“添加内表记录
USING
'
Products'
Product'
l_root.
itab_class“添加内表记录
Categories'
Categorie'
create_stream_factory
=l_factory
CALLMETHODl_factory->
create_ostream_itable
table
=xml_table
=l_ostream
render
ostream
=
l_ostream
recursive='
X'
CALLMETHODl_ostream->
get_num_written_raw
=xml_size.
FORMdownload
FORMdownload.
CALLFUNCTION'
GUI_DOWNLOAD'
bin_filesize=xml_size
filename
C:
\'
filetype
BIN'
TABLES
data_tab
=xml_table.
FORMfill_itab
FORMfill_itab2xmlTABLESintab
USINGnode1nameTYPEstring
node2nameTYPEstring
l_parentTYPEREFTOif_ixml_element.
DATA:
BEGINOFheadtabOCCURS0,
length
TYPEi,
decimals
TYPEi,
type_kindTYPEc,
name(30)
TYPEc,
ENDOFheadtab.
DATAdescr_refTYPEREFTOcl_abap_structdescr.
FIELD-SYMBOLS:
<
comp_wa>
TYPEabap_compdescr,
f_field>
f_intab>
TYPEANY.
nTYPEi,
strTYPEstring,
itemnameTYPEstring,
text1TYPEc,
l_nodeTYPEREFTOif_ixml_element,
l_itemTYPEREFTOif_ixml_element.
descr_ref=cl_abap_typedescr=>
describe_by_data(intab).
LOOPATdescr_ref->
componentsASSIGNING<
MOVE-CORRESPONDING<
TOheadtab.
APPENDheadtab.
ENDLOOP.
create_simple_element
=node1name
=l_parent
=l_node
DESCRIBETABLEheadtabLINESn.
LOOPATintabASSIGNING<
=node2name
=l_node
=l_item
DOnTIMES.
ASSIGNCOMPONENTsy-indexOFSTRUCTURE<
TO<
str=<
READTABLEheadtabINDEXsy-index.
IFheadtab-type_kind='
I'
ORheadtab-type_kind='
P'
F'
SEARCHstrFOR'
-'
IFsy-subrc=0ANDsy-fdpos<
>
0.
SPLITstrAT'
INTOstrtext1.
CONDENSEstr.
CONCATENATE'
strINTOstr.
ELSE.
ENDIF.
SHIFTstrLEFTDELETINGLEADING'
itemname=headtab-name.
=itemname
=l_item
=str
=l_element.
ENDDO.
2,使用SAP工具Transformation(Tcode:
STRANS)定义转换模板,ABAP组织数据并转换为XML格式.
此方法对SAP版本有限制,只有以上版本才能使用.
执行Tcode:
STRANS,新建一个Transformation.
粘贴如下代码并激活.
<
simple>
tt:
transformxmlns:
tt="
"
rootname="
ROOT"
/>
template>
tab1>
loopname="
line"
ref="
.ROOT"
key>
valueref="
$"
/key>
tab2>
loopref="
value>
value/>
/value>
/tt:
loop>
/tab2>
/tab1>
transform>
SE38新建下面的程序转换XML文件
REPORTZZITAB_XML.
DATAxml_stringTYPEstring.
BEGINOFline,
keyTYPEi,
valuesTYPETABLEOFi,
ENDOFline.
DATAnumTYPEi.
DATAitabLIKETABLEOFline.
DATAresultLIKEitab.
BEGINOFit_xmlOCCURS0,
line(100)TYPEc,
ENDOFit_xml.
w_lenTYPEi.
DO3TIMES.
CLEARline.
line-key=sy-index+1.
num=line-key**2.
APPENDnumTOline-values.
num=line-key**3.
num=line-key**4.
APPENDlineTOitab.
ENDDO.
CALLTRANSFORMATIONZTEST1“调用TRANSFORMATION”ZTEST1”完成转换
SOURCEroot=itab
RESULTXMLxml_string.“此时的XML为长字符串
write:
/'
XML转换完毕'
SCMS_STRING_TO_FTEXT'
“将XML为长字符串转换为内表格式方便下载
text=xml_string
IMPORTING
length=w_len
ftext_tab=it_xml.
XML格式转换完毕'
“XML文件下载
filename='
c:
filetype='
filelength=w_len
data_tab=it_xml.
XML文件下载完毕'
*下面是将XML文件转换为内表格式
*CALLTRANSFORMATIONZTEST1
*SOURCEXMLxml_string
*RESULTroot=result.
*
*write:
转换完毕'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sap 系统 xml 文件 转换 方法