从XML到ABAP的简单转换将标签的内容与子树转换为字符串字段

2020-08-16 06:18发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我有一个必须将XML文...

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

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


嗨,

我有一个必须将XML文件转换为结构的要求。

我需要获取具有子树的标签的值,然后将其移到结构中的字段中。

示例:

值1

值2

value4

值5

ABAP结构中预期的结果:

field1-> tag1

field2-> tag2

field3-> value4 value5

标签TAG3的内容是可变的,因此我想将其存储为字符串。

我可以通过简单转换做到这一点吗?

在测试中,我只能移动给定字段结构的每个子标记的值。

此语法不起作用:

感谢和问候,

Miguel Motta

4条回答
太Q了
2020-08-16 06:32 .采纳回答

你好米格尔

看看下面的代码片段。 在这里,我尝试对TAG3中的文本进行转义,以便在转换过程中将其视为单个节点。

ABAP代码

  1. 数据:开始于结果
  2. col1 TYPE字符串,
  3. col2 TYPE字符串,
  4. col3 TYPE字符串,
  5. END OF结果。
  6. 数据:xml_string TYPE字符串值
  7. ' 值1 值2 值4 值5 ',
  8. part1 TYPE字符串,
  9. part2 TYPE字符串,
  10. part3 TYPE字符串。
  11. *转义TAG3标签中的文本
  12. 查找正则表达式'(。* )(。*)(。*)'IN xml_string SUBMATCHES part1 part2 part3。
  13. IF sy-subrc EQ0。
  14. part2 =转义(val = part2格式= cl_abap_format => e_xml_text)。
  15. *在part2中用'&lt;'代替所有'<'的出现。
  16. *在part2中将所有出现的'>'替换为'&gt;'。
  17. xml_string = part1 && part2 && part3。
  18. ENDIF。
  19. 尝试。
  20. *显示xml
  21. cl_abap_browser => show_xml(导出xml_string = xml_string)。
  22. *反序列化
  23. 致电转换zmtest
  24. 源XML xml_string
  25. RESULT参数=结果。
  26. *检查结果
  27. 写:/'COL1 =',result-col1,
  28. /'COL2 =',result-col2,
  29. /'COL3 =',结果为col3。
  30. 捕获cx_st_error。
  31. *错误处理
  32. 消息"简单转换中的错误"
  33. 类型" I"显示为" E"。
  34. ENDTRY。

转换代码

 <?sap.transform简单吗?>
  http://www.sap.com/transformation-templates " template ="  temp" version =" 0.1"> 



模板名称=" temp">














/。

一周热门 更多>