博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABAP:XML
阅读量:6321 次
发布时间:2019-06-22

本文共 3131 字,大约阅读时间需要 10 分钟。

CL_IXML

  • DATA(IXML) = CL_IXML=>CREATE( )

引用变量ixml的静态类型是接口IF_IXML,其中包含创建更多对象(如streams, XML documents, parsers, or renderers)所需的所有工厂方法。

  • DATA(stream_factory) = ixml->create_stream_factory( ).

参考变量stream_factory的静态类型是接口IF_IXML_STREAM_FACTORY,其中包含输入流的工厂方法CREATE_ISTREAM _...和输出流的CREATE_OSTREAM _...。

可以为不同的数据源和数据接收器创建不同的数据流,例如字符串,内部表格或由URI指定的文件。
isteram 用于将abap变量的xml数据传递给ixml.其可以作为CALL TRANSFORMATION id 的source.
ostream 用于将ixml数据传递给abap变量.

CALL TRANSFORMATION id SOURCE text = `Hello XML!`                        RESULT XML DATA(xml_string). DATA(ixml) = cl_ixml=>create( ). DATA(stream_factory) = ixml->create_stream_factory( ). DATA(istream)        = stream_factory->create_istream_xstring( xml_string ). DATA result type string. CALL TRANSFORMATION id SOURCE XML istream                        RESULT text = result.

DATA(ixml) = cl_ixml=>create( ).

DATA(document) = ixml->create_document( ).

CALL TRANSFORMATION id SOURCE text = Hello XML!

RESULT XML document.

DATA xml_string TYPE string.

ixml->create_renderer( document = document

ostream  = ixml->create_stream_factory(                                 )->create_ostream_cstring(                                      string = xml_string )                                        )->render( ).
  • XML Documents

DATA(ixml) = cl_ixml=>create( ).

DATA(document) = ixml->create_document( ).
以这种方式创建的文档
用于处理保存为DOM的XML文档,
可以绑定到parser来填充它,
可用于构建新的XML数据或修改现有数据,
可以传递给render以产生render的输出。

  • iXML Library - Parse

    DATA(ixml) = cl_ixml=>create( ).

    DATA(parser) = ixml->create_parser(

    istream        = ...                 document       = ...                 stream_factory = ... ).

parser检查输入流istream的XML数据是否正确,并在内存中创建该文件的DOM表示。 方法PARSE的返回值具有类型i,并使用值生成与类型组IXML中的以下常量相匹配的结果:

ixml_mr_parser_ok
解析的XML数据没有任何错误。 解析成功,所有XML数据在保存的XML文档中都可用。
ixml_mr_parser_error
解析的XML数据有错误。 虽然解析器从具有错误的XML文件创建了有效的DOM,但通常不包含所有的XML数据。 这些错误可以分析。
ixml_mr_parser_fatal_error
XML文件根本无法解析。 这个错误通常不会再发生。
如果解析成功,则与解析器关联的XML文档文档可用于访问保存在内存中的DOM。
DATA(ixml) = cl_ixml=>create( ).
DATA(stream_factory) = ixml->create_stream_factory( ).

DATA(istream)        = stream_factory->create_istream_string(   `
` && `
` && ` Mer lasse de DOM in Kölle` && `
` ). DATA(document) = ixml->create_document( ). DATA(parser) = ixml->create_parser( stream_factory = stream_factory istream = istream document = document ). DATA(rc) = parser->parse( ). IF rc <> ixml_mr_parser_ok. ... "Error handling RETURN. ENDIF.
  • iXML Library - DOM Reads

直接读取可用于创建对DOM中节点对象的引用。 然后可以使用这些引用来访问方法并获取节点的属性。 在这里,任何节点都可以用作访问其子节点的起点。

Access by Root Element
Access to Subnodes
Access to adjacent subnodes
Access using node lists
Access Using Element Names
Access to Attributes
Attribute access using lists
Short forms for attribute access

  • Rendering a Full XML Document

An XML document in DOM representation is rendered using an XML renderer, created as follows using the iXML factory:

DATA(ixml) = cl_ixml=>create( ).

...

DATA(renderer) = ixml->create_renderer(

ostream        = ...                document       = ... ).

转载地址:http://vlvaa.baihongyu.com/

你可能感兴趣的文章
云服务正在吞噬世界!
查看>>
高性能 Lua 技巧(译)
查看>>
区分指针、变量名、指针所指向的内存
查看>>
最近话题火爆的四件事你知道不?
查看>>
SpringBoot整合MyBatis
查看>>
Android 类库书签更新(一)
查看>>
Unity3D Input按键系统
查看>>
简单的一条SQL,不简单的做事思维 NOT IN 、NOT EXISTS、LEFT JOIN用法差别 ...
查看>>
DataWorks:任务未运行自助排查
查看>>
ionic/cordova热部署
查看>>
「镁客早报」特斯拉裁员,马斯克解释没有办法;微软推出Azure DevOps赏金计划...
查看>>
centos 7.4 使用 pgxc_ctl 安装与使用
查看>>
Redis 单key值过大 优化方式
查看>>
【数据库】表分区
查看>>
nutz-sqltpl 1.3.4.RELEASE 发布,在 Nutz 项目中“解决 Java 拼接 SQL”问题
查看>>
城市 | 800个地铁站数据透析的京沪白领图鉴:隐形土豪、无产中产阶级和猪猪女孩...
查看>>
前端脚本!网站图片素材中文转英文
查看>>
linux的常用易忘命令
查看>>
PHP 分割字符串
查看>>
java 基于QRCode、zxing 的二维码生成与解析
查看>>