我正在處理一些XSLT轉換。這些轉換必須以自動化的方式應用於數以千計的XML文檔。結果文件應輸出到目標目錄。如何使XSLT有條件地輸出一個沒有DOCTYPE的空白文件?
請注意,某些轉換會生成XML,而有些轉換會生成純文本。
我有一個新的要求,即當輸入XML包含某些值時,某些XSLT轉換應該不會產生任何輸出,也不應寫入任何文件。
我在.net中處理XSLT的輸出,所以對於產生文本的XSLT,我只是簡單地檢查結果輸出是空白還是隻有空白;在這種情況下,我不寫文件,而且一切都很完美。
問題是當我嘗試從XSLT能產生XML承認空白輸出,因爲即使我指定什麼應該輸出在我xsl:template
塊,輸出將包含一個XML文檔類型<?xml version="1.0" encoding="UTF-8"?>
即使文檔是另有空白。
問題的一個解決方案是讓我的.net代碼過濾掉只包含XML文檔類型的文檔,但我不確定最好的方法是什麼。到目前爲止,我已經嘗試和xml.Trim().StartsWith("<?xml") && xml.Trim().EndsWith("?>")
,但我不知道那是多麼的防彈。
這可能會更好,如果我可以以某種方式使我的XSLT輸出doctype僅當有數據要輸出。我試圖將<xsl:output>
節點放在<xsl:if>
節點內,但這不起作用。
什麼是獲得我需要的結果的好方法?
如果您的客戶端輸出一些特定的XML,您的程序檢查是否意味着輸出應爲空白,該怎麼辦?這樣他們可以修改XSLT並獲得空白輸出,如果我理解 – Alan