当通过XSLT读取ABAP内部表字段中的XML内容时,有时无法读取该值或出现异常:反序列化期间出错。如果我现在是XML数据类型,如何为ABAP itab字段选择正确的数据类型? e.g。
string 250 .......................... | ..........文字....... ..... | .....................?
string 250 ......................... | ..日期yyy-mm-dd .. | ........ .............?
string 250 ......................... | .Date PARAM-4 .... | ......... .............?
string 250 ......................... | ..时间hh:mm ........ | .... ................?
string 250 ........................ | ..Number z9(4)........ | .... ...............?
string 250 ........................ | .. Number 9(4)......... | ... ..............?
string 250 ........................ | ..Number 9(7).......... | .. ...............?
string 250 ........................ | ..Number 9(6)............ ...............?
string 250 ........................ | ..Number z9(2)......... | ... ...............?
string 250 ........................ | ..Number 9(5)............ ................?
string 250 ........................ | ..Number d9(2)......... | ... ..............?
string 250 ........................ | ..Number 9(19)......... | ... ..............?
string 250 ........................ | ..Number 9(17)v9(2)| ........ .........?
string 250 ........................ | .Number Delco价格| ............... ..?
string 250 ........................ | Number Delco金额| ................ 。?
string 250 ........................ |号码客户发票金额| ............... ..?
string 250 ........................ | ..Number PARAM-3 ....... | ...... ...........?
请注意
xml = version =“1.0”encoding =“UTF-8”standalone =“true”
PARM-3 =字段格式中使用的小数分隔符“,”或“。”
PARM-4 =字段格式“dd-mm-yyyy”或“yyyy-mm-dd”中使用的日期格式
数字格式:
9(X):一个X位整数,用前导零格式化,没有符号,例如9(2)“01”
v:隐式小数位,例如9(2)v9(2)格式1.1为“0110”
d:PARM-3指定的十进制标记,或者。例如9(2)d9(2)格式1.1为“01,10”或“01.10”
z:压制前导零,如果为负则包括符号 例如z9(6)d9(2)“-1.10”
%:包括百分比字符,例如z9(2)d9(2)%“20.00%”
Delco价格:z9(X)d9(Y)其中Y是BillingDocument / DeliverCompany / CurrencyPricingMinorUnits,X是 字段中剩余数字的数量
Delco数量:z9(X)d9(Y)其中Y是 BillingDocument / DeliverCompany / CurrencyMinorUnits和X是数字 字段中的剩余数字
客户发票金额:z9(X)d9(Y)其中Y为 BillingDocument / InvoiceCustomer / MinorUnits和X是数字 字段中的剩余数字
答案 0 :(得分:0)
如何反序列化XML?根据我的理解,你不会在XML文件中有复杂的类型,或者你呢?
您可以尝试实际(复杂类型和常规类型):
DATA: xml_utils TYPE REF TO if_ixml.xml_utils = cl_ixml=>create( ).
xml_stream_factory TYPE REF TO if_ixml_stream_factory.xml_stream_factory = xml_utils->create_stream_factory( ).
DATA: xml_input_stream TYPE REF TO if_ixml_istream.xml_input_stream = xml_stream_factory->create_istream_uri( system_id = 'file://test.xml' ).
DAtA: example_data type z_s_your_structure.
" Deserialize XML
CALL TRANSFORMATION id
SOURCE XML = xml_input_stream
RESULT data_node = example_data.