使用XSLT输出多个文件

我试图找到一个我发现使用XSLT 2.0输出多个文件工作的例子。

使用Saxon B 9.7.0.1和Java 1.6,我收到此错误:

 C:\ Documents and Settings \ Administrator \ Desktop \ saxon> java -jar saxon9.jar -s:input.xml -xsl:transform.xml transform.xml第15行出错:java.net.URISyntaxException:路径中的非法字符在索引20:file:/// C:/ Documents and Settings / Administrator / Desktop / saxon / output1 / test1.html at xsl:for-each(file:/ C:/ Documents%20and%20Settings / Administrator / Desktop / saxon / transform.xml#10)processing / tests / testrun [1]转换失败:报告了运行时错误 

input.xml中

                  

transform.xml

                  

URI中的字符20是“文档和设置”中的第一个空格。 作为快速修复,尝试将文件移动到没有空格的路径。 (说,“C:\ test”或其他一些。)我怀疑长期修复是在将$filename输入xsl:result-document之前更改你的XSLT以将空格编码为%20 ,但我担心我的XSLT -2.0-fu不够强大,无法告诉你如何。

编辑:我没有测试过这个,因为我没有方便的XSLT 2.0处理器,但是在浏览了文档后,看起来你想要编码for uri函数。 以下内容可能对您有用:

  

我有同样的问题与saxon -o:outputfile用%20替换空格..

发现问题是saxon和java版本。

Linux JAVA 1.7.0_45:Saxon创建%20 Unix JAVA 1.5.0_61:SAXON创建%20 Unix JAVA 1.4.2_22:SAXON不创建%20目录