如何读取 XML 文件并解析它

发布于 2025-01-06 17:18:02 字数 75 浏览 0 评论 0原文

我想知道如何使用ABAP读取xml文件,我在网上搜索过但没有找到任何足够清晰的答案。有人可以帮助我吗?

提前致谢, 沙米龙

I want to know how to read an xml file using ABAP, I have searched online but did not find any answers that were clear enough. Could someone kindly help me?

Thanks in advance,
Shamiron

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冷心人i 2025-01-13 17:18:02

我相信iXML是一个旧的SAP库,使用起来不太方便。请在事务 SE24 中搜索类 CL_SXML_*。这是一个新的库,并且更容易使用。您还应该可以在 Google 上轻松找到有关 SXML 库的信息。

有关使用 SAP 说明中的 iXML 可能遇到的问题的更多信息 1229110

I believe the iXML is an old SAP library and not so convienient to use. Please search for classes CL_SXML_* in transaction SE24. This is a new library and a lot more easier to use. You should also find something about SXML library easily on Google.

More about problems you can run into by using iXML in the SAP Note 1229110.

月竹挽风 2025-01-13 17:18:02

这应该可以帮助您入门。检查“iXML ABAP 对象快速启动”一章以获取示例代码。

This should get you started. Check the "iXML ABAP Objects Jumpstart" chapter for sample code.

萌无敌 2025-01-13 17:18:02

我们使用的方法是abap转换,在abap中我们可以使用T代码XLST_TOOL编写转换,这里我们需要在XML中编写一些代码以便将XML转换为xstring然后是内部表,我们还需要编写一个调用程序。从调用程序中调用我们的转换。

the method that we used was an abap transformation , in abap we can write transformations using the T-code XLST_TOOL , here we require to write some code in XML in order to convert XML to xstring and then internal table ,we also need to write a calling program. from the calling program our transformation is called.

一个人练习一个人 2025-01-13 17:18:02

请参阅下面的使用 sXML 库的简单实现。该代码假设您从一个名为 lv_xmlstring 类型变量开始,其中包含 XML 文档的原始文本。该代码读取文档中的所有 XML 节点开始标记并打印出它们的名称(不带名称空间)。

DATA(lv_xstr) = cl_abap_codepage=>convert_to( source = lv_xml ).
DATA(lo_xml_reader) = cl_sxml_string_reader=>create( lv_xstr ).

DO.
  DATA(lo_xml_node) = lo_xml_reader->read_next_node( ).
  IF lo_xml_node IS INITIAL.
    EXIT.
  ENDIF.

  IF lo_xml_node->type = if_sxml_node=>co_nt_element_open.
    DATA(lo_xml_open_element) = CAST if_sxml_open_element( lo_xml_node ).
    DATA(lv_name) = lo_xml_open_element->qname-name.
    WRITE: / |{ lv_name }|.
  ENDIF.
ENDDO.

该文档向您展示了使用该库的其他方法,并提供了您可以使用的所有各种节点类型和 getter 方法。

See below for a simple implementation using the sXML library. The code assumes you start with a string type variable called lv_xml, which contains the raw text of the XML document. The code reads all the XML node opening tags in the document and prints out their names (without namespaces).

DATA(lv_xstr) = cl_abap_codepage=>convert_to( source = lv_xml ).
DATA(lo_xml_reader) = cl_sxml_string_reader=>create( lv_xstr ).

DO.
  DATA(lo_xml_node) = lo_xml_reader->read_next_node( ).
  IF lo_xml_node IS INITIAL.
    EXIT.
  ENDIF.

  IF lo_xml_node->type = if_sxml_node=>co_nt_element_open.
    DATA(lo_xml_open_element) = CAST if_sxml_open_element( lo_xml_node ).
    DATA(lv_name) = lo_xml_open_element->qname-name.
    WRITE: / |{ lv_name }|.
  ENDIF.
ENDDO.

The documentation shows you other ways of using the library, and provides all the various node types and getter methods you can use.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文