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 = documentostream = 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_errorXML文件根本无法解析。 这个错误通常不会再发生。如果解析成功,则与解析器关联的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 = ... ).