我只想将输入文档(它只是一个文件引用列表)转换为多个输出文档。
这有效:
<p:xslt name="MainTransformation1-b">
<p:input port="source">
<p:pipe step="CI" port="result"/>
</p:input>
<p:input port="stylesheet">
<p:document href="Transform.xsl"/>
</p:input>
<p:with-param name="ProjectName" select="$Name"/>
</p:xslt>
<p:sink/>
<p:for-each>
<p:iteration-source>
<p:pipe step="MainTransformation1-b" port="secondary"/>
</p:iteration-source>
<p:store method="text" media-type="text/text">
<p:with-option name="href" select="p:base-uri()"/>
</p:store>
</p:for-each>
XSL:
<xsl:template match="/">
<xsl:for-each select="//p">
<xsl:result-document href="{'tmp', position(), '.xml'}">
<xsl:apply-templates/>
</xsl:result-document>
</xsl:for-each>
</xsl:template>
问题:输出文档不包含根元素 - 我需要输出框架,稍后在创建框架文件时会包含所有输出文档。
错误消息:
09.11.2012 13:06:27 com.xmlcalabash.util.DefaultXProcMessageListener错误 SCHWERWIEGEND:错误:XD0001:XD0001 09.11.2012 13:06:27 com.xmlcalabash.drivers.Main错误 SCHWERWIEGEND:如果在步骤输出上生成非XML资源或到达步骤输入,则为动态错误。
当然它不是XML - 我试图代表@method(method = text)修复它,但它没有用。
有什么想法吗?我搜索了适用的解决方案,但我只找到一个条目,说目前这是不可能的...希望不是
答案 0 :(得分:3)
p:store的输入必须是XML。在包装元素中包装转换的文本输出,并在其上应用method = text,将自动忽略包装元素,因此您将获得text / plain文件..
HTH!