2012-05-30 40 views
0

假設我想從許多具有以下格式的xmls編寫文本輸出。 而其中一些xml文件可能沒有節點[name,age,school]的值。避免在XSL文件中創建輸出文件


<學生>

<名稱> Dilruk < /名稱>

<年齡/ >

<學校> ABC < /學校>

< /學生>


所有這些XML文件位於一個目錄中,我遍歷他們每產生每個XML輸出文件。

所以基本上我使用一個xsl文件我有,並試圖通過考慮這些相似格式的XML文件[與不同的節點值]產生輸出。

但我只需要將相應的輸出寫入具有一定條件的xml文件。 [可以說有一個名字,因爲一些XML文件不包含名稱值]。

因此,如果我有5個XML文件進行轉換,並且其中只有3個文件具有非空名稱值,我只想生成這些文件的3個輸出文件。

我更喜歡從XSL側,我知道最不可能的一個解決方案,但如果我們能做到這一點,而不必讀取輸出文件的內容,並刪除它們或刪除它們根據Java端大小[0KB],它真的也有幫助。

感謝提前:)

+0

什麼XSLT的版本,您使用的是什麼發動機? –

回答

0

在XSLT 1.0,沒有特定供應商的擴展,它是不可能在樣式表級別,以產生多個輸出。根據您使用的XSLT 1.0引擎的不同,可以使用多個擴展來啓用多個輸出,並且我在下面列出了一些鏈接。作爲替代,您可能會考慮讓您的客戶端多次調用樣式表,每個輸入文件一次。

至於XSLT 2.0,我將採取的方法是:

  1. 供應到樣式表,輸入的文件名作爲參數的空間分隔的列表。
  2. 對於文件名將其作爲文檔打開
  3. 對於每個具有名稱節點的文件,使用xsl:result-document和一個模板將其複製到文件名基於輸入文件名的輸出文件。

例如樣式表(XSLT 2。0),見:

對於XSLT 1.0,微軟的情況下,請參見:

對於XSLT 1.0,XALAN案例見:

另請參閱相關的問題: