2014-01-09 56 views
0

如何使用Saxon HE 9.5在使用build in命令行的文件目錄上運行xquery?我想將一個文件作爲輸入並生成一個文件作爲輸出。在一批xml文件上運行saxon xquery併爲每個輸入文件生成一個輸出文件

這聽起來很明顯,但如果不使用僅在PE和EE中可用的saxon擴展名,我無法弄清楚。

我可以使用fn:collection()或使用輸入參數來讀取目錄中的文件。但是,我只能生成一個輸出文件。

爲了簡單起見,我們假設我有一個目錄「input」,其中包含我的文件01.xml,02.xml,... 99.xml。然後我有一個「輸出」目錄,我想要生成具有相同名稱的文件 - 01.xml,02.xml,... 99.xml。

任何想法?

我的真實數據集足夠大(數以萬計的文件),我不想從jvm中觸發,所以編寫一個shell腳本爲每個文件調用saxon命令行是不成問題的。

如果沒有內置的命令行選項,我可能只寫我自己的快速java類。

回答

1

在XQuery語言中(僅在XSLT中)不存在從單個查詢生成多個輸出文件的功能,並且在Saxon的XQuery命令行中不存在處理一批輸入文件的功能(僅限於XSLT命令行)。

您可以從Ant,XProc或xmlsh(或當然是從Java)反覆調用單個文檔查詢,也可以改爲使用XSLT編寫代碼。

相關問題