在xsl中读取远程csv文件

时间:2013-03-21 14:56:40

标签: xslt saxon

我正在尝试使用Saxon 9将csv文件转换为xml文件。 但是当我尝试检查存在并使用xslt函数读取csv文件时,我遇到了问题: 未解析文本可用(), 未解析的文本()

它们可以正常使用本地文件,但是当我将远程文件作为参数传递时,unparsed-text-available()将返回false。

例如, 当我通过“D:\ test \ test.csv”时,它可以工作。 当我通过“\\ remote-computer \ test \ test.csv”时,它找不到它。

以下是我的xsl文件的一部分:

<xsl:template match="/" name="main">
  <xsl:choose>
    <xsl:when test="unparsed-text-available($pathToCSV)">
        <xsl:variable name="csv" select="unparsed-text($pathToCSV)"/>                    
            ....
    </xsl:when>
    <xsl:otherwise>
        <xsl:text>Cannot locate : </xsl:text><xsl:value-of select="$pathToCSV"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>

似乎document()可以读取远程文件,但只能读取xml文件。

你知道我可以用于这种情况的其他一些功能吗?在xslt或saxon?

1 个答案:

答案 0 :(得分:0)

您必须将该路径转换为有效的URI。

类似的东西:

unparsed-text(concat('file://',translate($pathToCSV,'\','/')))