简单转换:可变XML节点名称

2020-08-31 06:33发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我可以使用简单的转换将包含具有变量名的节点的ABAP表序列化为XML吗?

输出XML应该如下所示:

 <?XML Version =" 1.0" Encoding = UTF-16"?> 
   <表格>
      1 
      2 
   
 
 

ABAP内容:

 TYPES:开始于ly_table,
          参数TYPE字符串,
          值TYPE字符串,
        ly_table的结尾。

 ly_table的数据lt_table类型表。
 lt_table = VALUE#((param ='abc'value ='1')
                     (param ='def'value ='2'))。
即 在设计时未知中的标识符和节点数。

我将如何在ST中意识到这一点? 甚至有可能吗?


         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我可以使用简单的转换将包含具有变量名的节点的ABAP表序列化为XML吗?

输出XML应该如下所示:

 <?XML Version =" 1.0" Encoding = UTF-16"?> 
   <表格>
      1 
      2 
   

ABAP内容:

 TYPES:开始于ly_table,
          参数TYPE字符串,
          值TYPE字符串,
        ly_table的结尾。

 ly_table的数据lt_table类型表。
 lt_table = VALUE#((param ='abc'value ='1')
                     (param ='def'value ='2'))。
即 在设计时未知中的标识符和节点数。

我将如何在ST中意识到这一点? 甚至有可能吗?


付费偷看设置
发送
2条回答
黑丝骑士
1楼-- · 2020-08-31 07:18

使用简单转换(只能将ABAP数据对象转换为XML或相反)时,简单转换必须静态定义XML元素标签。 示例-根ABAP数据对象" ABAP_TABLE"是一个内部表,其行包含ZABC和ZDEF组件,XML只能静态定义:

 <?sap.transform simple?>
 
   
   
     <表格>
       
       <行>
         
         
       
     
f

要动态替换元素 RTTS ),然后使用 tt:copy ... 。 两行的表将创建一个奇怪的XML,例如" <_T00006S0000000> 1 2 <_ T00006S0000000> 3 4 "。 每行的元素名称很奇怪(因为它是RTTS生成的类型),元素名称是大写的,并且您无法在序列化内部表中自定义任何内容。

或者您可以从 通过使用 sXML 类在ABAP中进行抓取。 p>

或者通过串联字符串来构建XML。 顺便说一句,您可以使用转义进行转换 为其字符实体引用的特殊字符:

 xmlvalue =转义(val =值格式= cl_abap_format => e_xml_text)。  " Expl:&->&.amp;(no"。")
野沐沐
2楼-- · 2020-08-31 06:58

如果调用转换ID,则可以看到xml节点将从表列中获取其名称。 就像将内部表的行转置为列然后转换为xml一样。您可以先搜索转置解决方案。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...