2011-06-10 115 views
0

即使沒有明確的文本輸出,XSLT解析器也應該生成一個空文件。但是,我有一種情況,Saxon-HE 9.3根本不會生成任何文件輸出。爲什麼撒克遜不生產任何文件輸出?

我編譯使用此命令的文件:

Transform -s:1.xml -xsl:2.xsl -o:3.html 

藉助於此1.XML的內容是:

<?xml version="1.0"?> 
<!-- greeting.xml --> 
<x> 
<greeting>1</greeting><greeting>2</greeting> 
</x> 

而且2.xsl的內容是:

<?xml version="1.0"?> 
<!-- greeting3.xsl --> 
<xsl:stylesheet version="2.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="html"/> 

    <xsl:template match="/"/> 
</xsl:stylesheet> 

但是, re不是輸出(甚至沒有空文件)。 也沒有任何錯誤信息。

會發生什麼問題?

+2

好安裝Pacerier ;-)! – 2011-06-10 10:22:35

+0

發佈XML和XSLT的最小示例,我們可能會提供幫助。很可能您的模板匹配和/或XPath與XML結構不匹配,但可能有多種原因(區分大小寫,類型o,命名空間不匹配等)。 – 2011-06-10 13:00:53

+1

'1.xml'和'2.xsl' - 它們包含什麼?這不僅僅是嚴肅地說:「當我的程序X在給定輸入Y時不產生輸出」,並且不顯示X或Y - 你的程序寫入的編程語言的對角線。 – 2011-06-10 13:08:01

回答

1

這可能是一個錯誤或「權限不足」問題。

當文件1.XML2.xsl,並Transform.exe位於桌面上,也有與輸出沒有問題。

但是當文件在C:\,它給出了一個錯誤信息:

無法創建輸出文件的文件:/ C://3.html:訪問路徑「C:\ 3。 HTML'被拒絕。

然而,由於某些原因,當文件在C:\Program Files\Saxonica\SaxonHE9.3N\bin,有沒有輸出沒有錯誤消息。

+0

你知道薩克森可執行文件是否被實際調用?如果不是,我可以做很多改進診斷的工具;-(。如果它被調用,但由於某些基本原因未能創建輸出文件或錯誤文件,那麼可能有一個例外,我沒有捕捉到:有更多的細節可以修復,這將是很好的。 – 2011-06-14 10:17:02

+0

@Michael我很確定它的引用看看這個ss:http://imgur.com/yA3CW.gif – Pacerier 2011-06-14 14:51:16

+0

如果你添加-t選項會發生什麼? – 2011-06-15 10:50:21

2

轉換完全可能100%正確,但不產生任何輸出。這裏有一個例子樣式表,做到了這一點:

<xsl:template match="/"/> 

所以猜想是,有一個在你的代碼中的錯誤,如果你想讓我們幫你找到它,你就需要向我們展示你的代碼。

+0

即使我有''會有一些*輸出*:一個空文件。但是我沒有任何輸出...... zilch。順便說一句,我已經更新了這個問題.. – Pacerier 2011-06-11 08:52:03