Xslt exsl:文档-尝试生成输出文件

Xslt exsl:文档-尝试生成输出文件,xslt,output,Xslt,Output,我有这个代码到目前为止:-现在用不同的代码更新 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:exsl="http://exslt.org/common" extension-element-prefixes="exsl" exclude-result-prefixes="exsl" version="1.

我有这个代码到目前为止:-现在用不同的代码更新

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl"
exclude-result-prefixes="exsl"
version="1.0">
  <xsl:output method="xml"/>
  <xsl:variable name="emailPID" select="attr[@tag='00100020']"/>
  <xsl:variable name="emailPName" select="attr[@tag='00100010']"/>
  <!-- overwritten by application with actual values -->
  <xsl:param name="calling" select="'SAMPLE_MOD'"/>
  <xsl:param name="called" select="'SERVER1'"/>
  <xsl:param name="date" select="'20051206'"/>
  <xsl:param name="time" select="'115600.000'"/>
  <xsl:template match="/dataset">
    <exsl:document href="file:///c|/apps/foo.txt">
            <xsl:copy-of select="$emailPID"/>
            <xsl:copy-of select="$emailPName"/>
    </exsl:document>
  </xsl:template>
</xsl:stylesheet>

转换器没有抛出我看到的任何错误,但是我也看不到我期望的“c:\apps\foo.txt”文件。这里的格式有问题吗?还是我漏掉了什么

感谢您的关注。XSLT引擎可能会将冒号前面的部分(即
c
)混淆为路径的一部分,而不是路径的一部分

如果要为文件系统使用绝对地址,请包括:


驱动器冒号广告斜杠可能会在非windows平台上导致问题,因此您可以尝试:

<exsl:document href="file:///c|/apps/foo.txt">

处理器在看到

extension-element-prefixes="exslt"

因为前缀“exslt”尚未声明。也许你的意思是“exsl”。目前,“exsl”未声明为扩展名称空间,因此“exsl:document”是一个简单的文本结果元素,而不是一条指令。

我已经更新了上面的代码,现在看到一个错误:无法识别的XSLTC扩展“”。如果我将“exsl:document”注册/添加到XSLT引擎中,我只能使用它吗?很少有处理器允许您实现自己的扩展指令。您选择的处理器很可能无法使用此特定扩展。如果您使用的是XSLTC,那么您可能使用的是Java,因此您最好的策略是采用XSLT 2.0(以Saxon的形式)并使用标准的xsl:result文档指令。我想我会尝试在Jboss 4中安装SaxonHE-感谢您花时间,您的回答非常有用。
extension-element-prefixes="exslt"