即使没有明确的文本输出,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>
但是,没有输出(甚至没有空文件)。 也没有任何错误消息。
可能是什么问题?
答案 0 :(得分:2)
转换完全有可能100%正确但不产生输出。下面是一个示例样式表:
<xsl:template match="/"/>
所以猜想你的代码中存在一个错误,如果你希望我们帮你找到它,你需要向我们展示你的代码。
答案 1 :(得分:1)
这可能是一个错误或“权限不足”的问题。
当文件 1.xml , 2.xsl 和 Transform.exe 位于桌面时,没有任何问题输出。
但是当文件位于C:\
时,会显示错误消息:
无法创建输出文件文件:/ c://3.html:拒绝访问路径“c:\ 3.html”。
但由于某种原因,当文件位于C:\Program Files\Saxonica\SaxonHE9.3N\bin
时,没有输出和 没有错误消息。