2017-10-05 94 views
2

我有一個存儲過程,它接收XML輸入。我需要做的是創建XML轉換成另一種形式是適用於另一個系統(從輸入XML數據)什麼是解析XML的簡單方法在存儲的Proc/SQLRPGLE中?我可以在Iseries中使用XSLT嗎?

我想出了2個選擇這樣做,但都是費力什麼。 1.以XML的形式創建一個DS並執行'XML-INTO'來解析數據。然後創建新的XML 2.使用XMLTABLE解析出數據。

有用來創建新的XML一個更簡單的方法。我的團隊中的一位資深人士建議使用XSLT。這可能在我嗎?

+0

我在iseries上使用xslt將xml轉換成csv,然後我將它導入到表中。像STRQSH xsltproc mytemp.xsl mytarget.xml -o myresult.csv。我不把公司形式的公司帶到公司,所以我不能確定我是否記得正確,否則我會發佈一個答案。 – danny117

回答

1

XSLT應該是可用的,如果不出意外,IBM i有node.js的可用和快速搜索變成了一個XSLT包節點。

不知道爲什麼你找到XMLTABLE費力......而且考慮到這股與XSLT相同的功能,我想像XSLT也不會有什麼好。

您還忘了一個選項,RPG IV提供XML-SAX操作碼也;這顯然使用SAX解析器與XML-INTO的DOM解析器。

提供有關文檔的詳細信息,以及如何需要通關數據,我們或許可以提供更多的指導。

+0

感謝Charles ..所以基本上,我將從第三方獲取XML,解析它併爲不同的第三方創建不同的XML。因此,輸入XML將在Stored Proc中接收,我將使用它來解析它一個DS ...現在的問題是用這些數據創建一個新的XML。一種方法是對XML結構進行重新編碼(無論是在程序中,還是在MSGF或IFS中),並僅用它來填充程序中的值。但是,我正在尋找一種軟編碼創建XML的方法。也許使用XMLForest(沿着這條線)... –

+0

只有XMLFOREST我熟悉的是SQL函數...您可以使用XMLTABLE將XML分割成表格,然後使用XMLFOREST和其他XML發佈函數來構建新的XML。沒有看到如何避免_hard coding_輸出結構...除非你想查找一個DTD併爲此生成一個有效的XM ......似乎是過度殺傷,除非DTD經常變化......而你'd仍然需要硬編碼地圖itemno = itemnum或什麼不... – Charles

相關問題