2011-06-10 106 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