XML提取

2020-08-22 05:47发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我想从我的XML源提...

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

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


大家好,

我想从我的XML源提取一组节点到新的XML目标。 例如,我有以下XML字符串:

 
    
        12 
        12 
    
  

我想拥有以下XML字符串:

 
        12 
        12 
     

任何帮助将不胜感激:)

此致

Laurent G。

3条回答
zhangjiyang1323
2020-08-22 06:10 .采纳回答

您可以使用if_ixml_node-> clone。 您是否了解所有XML接口,并且知道如何使用它们? (在SE24'cl_ixml *'和'if_ixml *'中查找)。

编码:

 *接口
 数据:iv_xml TYPE字符串,
       ev_xml TYPE字符串。

 * xml数据
 数据:lr_xml类型引用为if_ixml,
       lr_new_xml类型为if_ixml,
       lr_document类型参考if_ixml_document,
       lr_new_document类型参考if_ixml_document,
       lr_streamfactory类型参考if_ixml_stream_factory,
       lr_new_streamfactory类型参考if_ixml_stream_factory,
       lr_istream类型参考if_ixml_istream,
       lr_ostream类型参考if_ixml_ostream,
       lr_renderer类型参考if_ixml_renderer,
       lr_parser类型参考if_ixml_parser,
       lr_nodes类型参考if_ixml_node_collection,
       lr_node类型参考if_ixml_node,
       lr_new_node类型引用到if_ixml_node。
 数据lv_index TYPE i。
 数据lv_rval TYPE i。

 *创建xml主工厂
 调用方法cl_ixml => create
   接收
     rval = lr_xml。

 *创建xml文档
 调用方法lr_xml-> create_document
   接收
     rval = lr_document。

 *创建xml流工厂
 调用方法lr_xml-> create_stream_factory
   接收
     rval = lr_streamfactory。

 *创建xml输入流
 " iv_xml ='   12   12   "。
 呼叫方法lr_streamfactory-> create_istream_string
   出口
     string = iv_xml"您的xml文档为字符串
   接收
     rval = lr_istream。

 *创建xml解析器
 调用方法lr_xml-> create_parser
   出口
     document = lr_document
     istream = lr_istream
     stream_factory = lr_streamfactory
   接收
     rval = lr_parser。

 *将输入流解析为文档
 调用方法lr_parser-> parse。

 ******************************************************  ************
 *读取节点
 呼叫方法lr_document-> get_elements_by_tag_name
   出口
     名称='enc'
   接收
     rval = lr_nodes。

 *读取节点
 呼叫方法lr_nodes-> get_item
   出口
     索引= lv_index
   接收
     rval = lr_node。

 如果lr_node不是INITIAL。

   "创建新的xml
   调用方法cl_ixml => create
     接收
       rval = lr_new_xml。
   "创建新的xml文档
   呼叫方法lr_new_xml-> create_document
     接收
       rval = lr_new_document。

   克隆当前节点
   lr_new_node = lr_node-> clone()。

   "将新节点作为子节点追加到新文档中
   lv_rval = lr_new_document-> append_child(lr_new_node)。

 *创建新的xml流工厂
   调用方法lr_new_xml-> create_stream_factory
     接收
       rval = lr_new_streamfactory。

 *创建新的xml输出流作为字符串
   呼叫方法lr_new_streamfactory-> create_ostream_cstring
     出口
       字符串= ev_xml
     接收
       rval = lr_ostream。

 *创建xml渲染器
   调用方法lr_new_xml-> create_renderer
     出口
       document = lr_new_document
       ostream = lr_ostream
     接收
       rval = lr_renderer。
 *将文档渲染到输出流中
   调用方法lr_renderer-> render。

 万一。

 

一周热门 更多>