代码xslt错误:找不到文件

时间:2016-10-11 12:24:57

标签: xslt apache-camel

我尝试使用外部XML与另一个XML进行比较,但在编译时出错。

我正在使用apache camel进行编译。

错误:

DefaultErrorHandler            ERROR Failed delivery for (MessageId: ID-DESKTOP-L78T6HF-57465-1476187649613-0-7 on ExchangeId: ID-DESKTOP-L78T6HF-57465-1476187649613-0-8). Exhausted after delivery attempt: 1 caught: javax.xml.transform.TransformerException: com.sun.org.apache.xalan.internal.xsltc.TransletException: com.sun.org.apache.xalan.internal.xsltc.TransletException: java.io.FileNotFoundException: E:/TestesCamel/to/qualis/estrato/qualis.xml

错误显示找不到文件,但该文件位于此目录中。

这是有错误的部分:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/>
<xsl:template match="/">
    <xsl:variable name="qualis" select="document('E:/TestesCamel/to/qualis/estrato/qualis.xml')"/>
    <xsl:for-each select="$qualis/DATA">
        . 
        .
    </xsl:for-each>
</xsl:template>

任何人都可以帮助我吗?感谢

1 个答案:

答案 0 :(得分:2)

使用协议file:///为您的URI添加前缀。

<xsl:variable name="qualis" select="document('file:///E:/TestesCamel/to/qualis/estrato/qualis.xml')"/>

更多信息:Xalan [via Java]可以使用特定目录配置为基本路径 - 绝对文件路径可能会被处理为相对路径。