2017-02-06 37 views
1

當我使用在我的XSLT文件下面,撒克遜當我運行通過CLI轉化帶有.htm擴展名的文件輸出的xsl:輸出媒體類型與所述命令行

<xsl:output method="html" 
     version="5.0" 
     doctype-system="about:legacy-compat" 
     encoding="UTF-8" 
     indent="yes" 
     media-type="text/html"/> 

然而並使用!media-type = text/html傳遞輸出參數撒克遜輸出帶有xml擴展名的文件

下面是我使用的命令,我是否做錯了什麼?

java -jar /Users/Stephane/XSLT_DEV/saxon/saxon9he.jar -s:/Users/Stephane/XSLT_DEV/S1000D/xml/ -o:/Users/Stephane/XSLT_DEV/S1000D/html/ -xsl:$file cssPath='../xslt/assets' imagesPath='graphics/' !method='html' !version='5.0' !encoding='UTF-8' !indent='yes' !media-type='text/html'; 
+0

我猜CLI =命令行界面,不是通用語言基礎結構。你讓我感到困惑了一段時間。 –

+0

@MichaelKay確實請接受我對此混淆的道歉。 –

回答

0

自動生成的輸出文件名只發生在一個特定的情況:在您使用命令行來處理輸入文件的目錄下生成的輸出文件的目錄。它根據xsl:output/@media-type的值作出決定,忽略命令行上提供的!media-type的任何值。沒有特別的原因,但它就是這樣。值將是「.xml」,「.html」或「.txt」。

在所有其他情況下,輸出文件的名稱正是您選擇的名稱。

+0

感謝您的回答,我想要做的是不使用元素,因爲我需要將該文件另存爲XML(用於QA目的)以及HTML(可視化)。我在Sublime Text中運行一個構建過程。當我從我的轉換文件中刪除元素並通過命令行使用!media-type時,Saxon將該文件保存爲擴展名爲.xml的文件,而不是.html –

+0

對不起,但這是它的工作方式。您始終可以擁有一個僅包含xsl:輸出和xsl:import的虛擬頂級模塊。 –

+0

謝謝。我沒有考慮這樣做,因爲我已經有一個頂級域名文件與進口。我要改變我的文件架構來做到這一點。 –