2009-11-19 248 views
2

我的公司正在研究需要在SAP ABAP中讀取XML文件的項目。在SAP ABAP中解析XML

  1. 當XML文件沒有特定標籤的數據時,它會忽略該數據。
  2. 一些標籤自動關閉。例如<標記/ >

SAP開發人員說,要讀取XML文檔,他首先將文檔解析爲ABAP XML結構。此過程在第2點上失敗。然後,他必須創建XSLT以將該數據轉換爲內部數據結構,並且在點1上失敗,因此使得在ABAP內實現該任務非常困難。 這是絕對的情況,是否有沒有辦法閱讀我們需要的特定領域?

+0

子彈點2原來是紅鯡魚。 我仍然對第1點導致的錯誤沒有信心。 – Steven 2009-11-23 16:10:46

回答

3

開始在ABAP中使用XML解析的最佳位置是SAP XML Library

嘗試和編寫自己的解析算法可能是一個非常糟糕的主意 - 讓其他人(在這種情況下,SAP)爲您辛苦工作。

-1

您可以只讀取文件(使用打開的數據集),然後使用字符串函數(如find)來解析XML。它的醜陋,可能是很多工作,但你絕對可以做到。

+0

不,只是不會。它會失敗,需要很長時間才能構建一個兼容的XML解析器,甚至SAP也爲他們的解析器提供了OSS註釋。 – tomdemuyt 2011-12-20 15:19:25

0

我建議你首先應用XSLT以將XML內容轉換爲ABAP處理器能夠讀取的表單。還有iXML(看一下示例程序BCCIIXML *),但它使用起來相當慢並且很麻煩......

0

有一個教程在heidoc.net/joomla/development-mainmenu-31/22-sap --xslt/15-sapxslt可能有所幫助,SDN(SAP Developer's Net)也有一些文章。我在http://help.sap.com/abapdocu/en/ABENST_ABEXA.htm

找到一些參考,只是谷歌它。

1

如果有人讀這個博客奇事: 您可能能夠使用一些檢查與COND聲明類似,可以這樣開始:

tt:cond check="not-initial( 

tt:cond using="exist(ref('$Styles'))" 

我用它在EXCEL表單上進行簡單轉換。