1

我正在尝试使用 Saxon 9 将 csv 文件转换为 xml 文件。但是当我尝试检查存在并使用 xslt 函数读取 csv 文件时遇到问题:unparsed-text-available()、unparsed-text( )

它们适用于本地文件,但是当我将远程文件作为参数传递时,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 或撒克逊语中?

4

1 回答 1

0

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

就像是:

unparsed-text(concat('file://',translate($pathToCSV,'\','/')))
于 2013-03-21T16:01:07.707 回答