我正在从批处理文件中呼叫Saxon(9.6 HE):
Transform -t -s:"in.xml" -xsl:"ChangeFileName.xsl" -o:"changefilename.txt" 1>>convert.log 2>&1
命令1>>convert.log 2>&1
将Saxon的标准错误输出发送到文件convert.log
。
Transform调用一个XSLT,它输出2个文本文件:
<xsl:template match="manual">
<xsl:result-document method="text" href="version.txt">
<xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_Version']/@Value"/><xsl:text> </xsl:text>
</xsl:result-document>
<xsl:result-document method="text" href="state.txt">
<xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_State']/@Value"/>
</xsl:result-document>
</xsl:template>
当我从自己的用户帐户运行转换时,此方法有效,但是当我使用其他帐户时,此操作失败:未创建文本文件state.txt
和version.txt
。
我正在尝试解决此问题,但Saxon不会输出任何错误消息。我的日志文件仅包含
Writing to file:/Z:/version.txt
,不表示写入失败或失败原因。
更糟糕的是,当我直接从命令行窗口运行“转换”命令时,它会成功。
如何从Saxon中获取更详细的错误信息?
答案 0 :(得分:1)
整rick。您不太可能从Saxon中获得更多信息,因为Saxon可能不知道文件未成功写入。通常会遇到类似这样的问题,这些文件实际上存在,但是它们不在您期望的位置。
一个建议:尝试使用-T选项运行。跟踪结果将告诉您转换是否已完成(显然成功),或者是否在某个阶段过早终止。
另一个建议:尝试在href属性中使用绝对URI(例如file:///x/y/z.txt)。
我已经忘记了我以前对Windows文件系统的大部分知识,但是在失败的帐户下,驱动器号Z是否有可能映射到意外的地方?