【问题标题】:Why Saxon does not produce any file output?为什么撒克逊不产生任何文件输出?
【发布时间】:2011-06-10 09:01:03
【问题描述】:

即使没有明确的文本输出,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>

但是,没有输出(甚至没有空文件)。 也没有任何错误信息。

可能是什么问题?

【问题讨论】:

  • 安装好Pacerier ;-)!
  • 发布 XML 和 XSLT 的最小示例,我们可能会提供帮助。您的模板匹配和/或 XPath 可能与 XML 结构不匹配,但可能有多种原因(区分大小写、o 类型、命名空间不匹配等)。
  • 1.xml2.xsl -- 它们包含什么?严肃地说:“我的程序 X 在给定输入 Y 时不产生输出”并且不显示 X 或 Y——不管你的程序是用哪种编程语言编写的。

标签: xml xslt saxparser saxon


【解决方案1】:

转换完全有可能 100% 正确但不产生任何输出。下面是一个示例样式表:

<xsl:template match="/"/>

所以推测是您的代码中存在错误,如果您希望我们帮助您找到它,您需要向我们展示您的代码。

【讨论】:

  • 即使我有&lt;xsl:template match="/"/&gt; 也会有一些输出:一个空文件。但我没有任何输出.. zilch。顺便说一句,我已经更新了问题..
【解决方案2】:

这可能是一个错误或“权限不足”问题。

1.xml2.xslTransform.exe文件位于桌面时,没有问题输出。

但是当文件在C:\ 中时,它会给出错误信息:

未能创建输出文件 file:/c://3.html: 访问路径 'c:\3.html' 被拒绝。

但由于某种原因,当文件在C:\Program Files\Saxonica\SaxonHE9.3N\bin 中时,会出现no 输出 no 错误消息。

【讨论】:

  • 您知道是否实际调用了 Saxon 可执行文件?如果不是,我无法改进诊断;-(。如果它被调用但由于某些基本原因未能创建输出文件或错误文件,那么可能有一个我没有发现的异常:最好有更多细节,以便修复它。
  • @Michael 我很确定它被调用了看看这个 ss:imgur.com/yA3CW.gif
  • 如果添加 -t 选项会发生什么?
  • 如果 -t 选项没有输出,那么看起来好像 Saxon 正在尝试产生输出并且系统不会允许它(或者它抛出异常并且 Saxon 通过产生更多输出来响应这同样是不可见的,或者系统正在默默地丢弃 Saxon 的输出)。很奇怪。我真的不知道我能做些什么。如果有人足够了解 .NET 并告诉我我应该在这里做什么,我很乐意倾听!您可以将标准错误输出重定向到文件吗?
  • 取决于外壳,但在许多情况下它是 2>error.log,我相信。
猜你喜欢
  • 2017-01-03
  • 2023-01-02
  • 1970-01-01
  • 2012-09-27
  • 2019-01-05
  • 2016-01-25
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多