微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAP xml 的解析

*&---------------------------------------------------------------------*
*&ReportZEXPOT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORTZEXPOT.

TYPE-POOLS:IXML,ABAP.

types:beginofXML_LINE,
DATA(256)typeX,
endofXML_LINE.

DATA:L_XML_TABLETYPETABLEOFXML_LINE,
L_XML_SIZETYPEI,
L_RCTYPEI.

DATAXMLDATATYPEXSTRING.
DATA:RESULT_XMLTYPESTANDARDTABLEOFSMUM_XMLTB.
DATA:RETURNTYPESTANDARDTABLEOFBAPIRET2.
DATA:WA_XMLTYPESMUM_XMLTB.

*如果需要上载XML可以用一下方法
CALLFUNCTION'GUI_UPLOAD'
EXPORTING
FILENAME='C:\sou.xml'
FILETYPE='BIN'
IMPORTING
FILELENGTH=L_XML_SIZE
TABLES
DATA_TAB=L_XML_TABLE.

*--将XML数据导入到内表
CALLFUNCTION'SCMS_BINARY_TO_XSTRING'
EXPORTING
INPUT_LENGTH=L_XML_SIZE
IMPORTING
BUFFER=XMLDATA
TABLES
BINARY_TAB=L_XML_TABLE
EXCEPTIONS
Failed=1
OTHERS=2.

CALLFUNCTION'SMUM_XML_PARSE'
EXPORTING
XML_INPUT=XMLDATA
TABLES
XML_TABLE=RESULT_XML
RETURN=RETURN.

LOOPATRESULT_XMLINTOWA_XML.

ENDLOOP.

============================

对应的XML文件,内表中的数据和XML文件要请仔细作比对

才知道需要取什么数据

============================

<?xml version="1.0"?> <flights> <airline code="AA" name="American Airlines"> <flight number="0017"> <from airport="JFK">NEW YORK,US</from> <to airport="SFO">SAN FRANCISCO,US</to> <departure>110000</departure> <arrival>140100</arrival> <type>Scheduled</type> </flight> <flight number="0064"> <from airport="SFO">SAN FRANCISCO,US</from> <to airport="JFK">NEW YORK,US</to> <departure>090000</departure> <arrival>172100</arrival> <type>Scheduled</type> </flight> </airline> <airline code="AZ" name="Alitalia"> <flight number="0555"> <from airport="FCO">ROME,IT</from> <to airport="FRA">FRANKFURT,DE</to> <departure>190000</departure> <arrival>210500</arrival> <type>Scheduled</type> </flight> <flight number="0788"> <from airport="FCO">ROME,IT</from> <to airport="TYO">TOKYO,JP</to> <departure>120000</departure> <arrival>085500</arrival> <type>Scheduled</type> </flight> <flight number="0789"> <from airport="TYO">TOKYO,JP</from> <to airport="FCO">ROME,IT</to> <departure>114500</departure> <arrival>192500</arrival> <type>Scheduled</type> </flight> <flight number="0790"> <from airport="FCO">ROME,IT</from> <to airport="KIX">OSAKA,JP</to> <departure>103500</departure> <arrival>081000</arrival> <type>Charter</type> </flight> </airline> <airline code="DL" name="Delta Airlines"> <flight number="1984"> <from airport="SFO">SAN FRANCISCO,US</to> <departure>100000</departure> <arrival>182500</arrival> <type>Scheduled</type> </flight> <flight number="1699"> <from airport="JFK">NEW YORK,US</to> <departure>171500</departure> <arrival>203700</arrival> <type>Scheduled</type> </flight> <flight number="0106"> <from airport="JFK">NEW YORK,US</from> <to airport="FRA">FRANKFURT,DE</to> <departure>193500</departure> <arrival>093000</arrival> <type>Scheduled</type> </flight> </airline> <airline code="JL" name="Japan Airlines"> <flight number="0407"> <from airport="NRT">TOKYO,JP</from> <to airport="FRA">FRANKFURT,DE</to> <departure>133000</departure> <arrival>173500</arrival> <type>Scheduled</type> </flight> <flight number="0408"> <from airport="FRA">FRANKFURT,DE</from> <to airport="NRT">TOKYO,JP</to> <departure>202500</departure> <arrival>154000</arrival> <type>Charter</type> </flight> </airline> <airline code="LH" name="Lufthansa"> <flight number="2407"> <from airport="TXL">BERLIN,DE</from> <to airport="FRA">FRANKFURT,DE</to> <departure>071000</departure> <arrival>081500</arrival> <type>Scheduled</type> </flight> <flight number="2402"> <from airport="FRA">FRANKFURT,DE</from> <to airport="SXF">BERLIN,DE</to> <departure>103000</departure> <arrival>113500</arrival> <type>Scheduled</type> </flight> <flight number="0402"> <from airport="FRA">FRANKFURT,DE</from> <to airport="JFK">NEW YORK,US</to> <departure>133000</departure> <arrival>150500</arrival> <type>Charter</type> </flight> <flight number="0401"> <from airport="JFK">NEW YORK,DE</to> <departure>183000</departure> <arrival>074500</arrival> <type>Scheduled</type> </flight> <flight number="0400"> <from airport="FRA">FRANKFURT,US</to> <departure>101000</departure> <arrival>113400</arrival> <type>Scheduled</type> </flight> </airline> <airline code="QF" name="Qantas Airways"> <flight number="0005"> <from airport="SIN">SINGAPORE,SG</from> <to airport="FRA">FRANKFURT,DE</to> <departure>225000</departure> <arrival>053500</arrival> <type>Scheduled</type> </flight> <flight number="0006"> <from airport="FRA">FRANKFURT,DE</from> <to airport="SIN">SINGAPORE,SG</to> <departure>205500</departure> <arrival>150500</arrival> <type>Scheduled</type> </flight> </airline> <airline code="SQ" name="Singapore Airlines"> <flight number="0988"> <from airport="SIN">SINGAPORE,SG</from> <to airport="TYO">TOKYO,JP</to> <departure>163500</departure> <arrival>001500</arrival> <type>Scheduled</type> </flight> <flight number="0158"> <from airport="SIN">SINGAPORE,SG</from> <to airport="JKT">JAKARTA,ID</to> <departure>152500</departure> <arrival>160000</arrival> <type>Scheduled</type> </flight> <flight number="0015"> <from airport="SFO">SAN FRANCISCO,US</from> <to airport="SIN">SINGAPORE,SG</to> <departure>160000</departure> <arrival>024500</arrival> <type>Scheduled</type> </flight> <flight number="0002"> <from airport="SIN">SINGAPORE,SG</from> <to airport="SFO">SAN FRANCISCO,US</to> <departure>170000</departure> <arrival>192500</arrival> <type>Scheduled</type> </flight> </airline> <airline code="UA" name="United Airlines"> <flight number="0941"> <from airport="FRA">FRANKFURT,DE</from> <to airport="SFO">SAN FRANCISCO,US</to> <departure>143000</departure> <arrival>170600</arrival> <type>Scheduled</type> </flight> <flight number="3504"> <from airport="SFO">SAN FRANCISCO,DE</to> <departure>150000</departure> <arrival>103000</arrival> <type>Scheduled</type> </flight> <flight number="3516"> <from airport="JFK">NEW YORK,DE</to> <departure>162000</departure> <arrival>054500</arrival> <type>Scheduled</type> </flight> <flight number="3517"> <from airport="FRA">FRANKFURT,US</to> <departure>104000</departure> <arrival>125500</arrival> <type>Scheduled</type> </flight> </airline> </flights>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。