我的公司正在开发一个需要在 ABAP 中读取 XML 文件的项目。
- 当 XML 文件没有特定标签的数据时,它会忽略该数据。
- 一些标签是自动关闭的。例如<标签/>
SAP 开发人员说,为了读取 XML 文档,他首先将文档解析为 ABAP XML 结构。此过程在第 2 点失败。然后他必须创建一个 XSLT 以将该数据转换为内部数据结构,并且在第 1 点失败,因此在 ABAP 中很难完成该任务。
肯定是这样吗?那么就没有办法读取我们需要的特定字段吗?
在 ABAP 中进行 XML 解析的最佳起点是SAP XML 库。
尝试编写自己的解析算法可以说是一个非常糟糕的主意 - 让其他人(在本例中为 SAP)为您完成艰苦的工作。
我建议您首先应用 XSLT 将 XML 内容转换为 ABAP 处理器能够读取的形式。还有 iXML(看看示例程序 BCCIIXML*),但使用起来相当缓慢和麻烦……
您可以只读取文件(使用打开的数据集),然后使用 find 等字符串函数解析 XML。它很丑,可能需要做很多工作,但你绝对可以做到。