我正在尝试获取一个示例,该示例使用XSLT 2.0来输出工作中的多个文件。
在Java 1.6上使用Saxon B 9.7.0.1,出现此错误:
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
和设置/管理员/桌面/saxon/output1/test1.html
在xsl:for-each(文件:/ C:/Documents%20and%20Settings/Administrator/Desktop/saxon/transform.xml#10)
处理/ tests / testrun [1]
转换失败:报告了运行时错误
<?xml version="1.0" encoding="UTF-8"?>
<tests>
<testrun run="test1">
<test name="foo" pass="true" />
<test name="bar" pass="true" />
<test name="baz" pass="true" />
</testrun>
<testrun run="test2">
<test name="foo" pass="true" />
<test name="bar" pass="false" />
<test name="baz" pass="false" />
</testrun>
<testrun run="test3">
<test name="foo" pass="false" />
<test name="bar" pass="true" />
<test name="baz" pass="false" />
</testrun>
</tests>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
<xsl:output method="text"/>
<xsl:output method="html" indent="yes" name="html"/>
<xsl:template match="/">
<xsl:for-each select="//testrun">
<xsl:variable name="filename"
select="concat('output1/',@run,'.html')" />
<xsl:value-of select="$filename" /> <!-- Creating -->
<xsl:result-document href="{$filename}" format="html">
<html><body>
<xsl:value-of select="@run"/>
</body></html>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
URI中的字符20是“文档和设置”中的第一个空格。作为快速解决方案,请尝试将文件移动到没有空格的路径。(例如,“ C:\
test”或类似的代码。)我怀疑长期的解决方法是将XSLT更改为%20
在馈$filename
给之前将空格编码为xsl:result- document
,但我担心XSLT-2.0-fu不够坚固告诉你如何
编辑: 我还没有测试过,因为我没有方便的XSLT
2.0处理器,但是看了看文档之后,看来您想要的是uri编码。类似以下内容可能适用于您:
<xsl:result-document href="{fn:encode-for-uri($filename)}" format="html">
我使用的是saxon for xml到html的xslt转换,我需要两个输出文件,一个是基本html,一个是javascript文件,如果不支持js,它可以是文本文件。这是我的转换c#代码,也是xsl文档的一部分。我需要从转换后的xml输出一个html文件和一个带有脚本的javascript文件 这里是xsl文档的一部分
我已经看到了如何用xslt合并两个xml文件或如何-can-I-merge-this-two-xml-files-using-xslt下的各种问题,但这些示例不处理文本输出,也不处理对“default”的静态引用。xml'。 我正在尝试生成一个由默认值生成的C headerfile。被目标修改的xml。xml。 我正在使用xsltproc作为xslt处理器,并希望能够执行xslproc merg。
问题内容: 我正在尝试将我的reducer的结果输出到多个文件。数据结果全部包含在一个文件中,其余结果根据它们所尊重的文件中的类别进行划分。我知道使用0.18可以使用MultipleOutputs做到这一点,并且它尚未被删除。但是,我正在尝试使我的应用程序兼容0.20+。现有的多输出功能仍然需要JobConf(我的应用程序使用Job和Configuration)。如何根据密钥生成多个输出? 问题答
如何从输出到多个文件? 每个条目中的关键字是文件名。groupByKey转换给了我,但是我如何将它们写入多个文件呢? 例如,给定以下输入 我想输出两个文件
在使用Saxon将多个输入文件从hocr转换为alto xml(每个输入文件都需要一个xml输出)时遇到困难,我可以一次转换一个文件,但当我尝试对多个文件使用collection()命令时,会收到错误消息“Source file collection('file:\c:?select=*(hocr))不存在”。所以我知道我使用的路径有问题,但不确定在这种情况下正确使用collection()应该是
我有以下问题。我不是XSLT方面最伟大的专家,我想成功的是将一个XML从赛贝斯转换为以下内容: Sybase的输出: 我希望它的输出标题保持原样,条目部分不同 这是到目前为止我的XSLT(对不起,不太可能) 也许,有人可以帮我实现我想要的。非常感谢你。