问题如下:
我有一个XSLT任务,假设生成一个XML文件作为输出。这是我目前得到的输出:
C: \Users\rmrd001\git\xslt framework\examples\intermediate\odt folder\t2\t2.1\content
它生成一个没有任何扩展名的文件。因此,windows不提供默认的打开程序。当然,期望的结果是相同的,但包括扩展。即:
C: \Users\rmrd001\git\xslt framework\examples\intermediate\odt folder\t2\t2.1\content.xml
这是任务定义:
<xslt in="@{file}" out="${dita-odt.path.odt-unzipped-base-dir}/${common-path}/${file-base-name}" style="${dita-odt.path.text-odt-xsl}" extension="xml" force="true">
<param name="dir-path-styles-xml" expression="${dita-odt.path.odt-unzipped-base-dir}/${common-path}"/>
<!--The following parameter is designated for reference nodes that require absolute path. For example draw:image/@href. This is to achieve system portability as well.-->
<param name="project-base-dir-absolute-path" expression="${base-dir-unix}"/>
<classpath location="${infrastructure-base-dir}/${dita-odt.text-odt-xsl.processor}"/>
</xslt>
我知道这不是完整的脚本,但除了输出文档缺少扩展之外,其他一切都很好。XSL任务中没有嵌套mapper
。我还可以通过将.xml
添加到out
属性中指定的路径来解决此问题,如out="${dita-odt.path.odt-unzipped-base-dir}/${common-path}/${file-base-name}.xml"
。不管怎样,为什么它不起作用?
对于<xslt>
,如果以下情况之一,则忽略extension
属性:
- 设置了
out
属性 - 或者CCD_ 8嵌套在CCD_
要使<xslt>
输出具有特定扩展名的文件,请执行以下操作之一:
- 为
out
提供扩展 - 或者添加一个附加扩展名的
<mapper>
您需要指定完整路径。如果${file-base-name}的末尾不包含".xml",则必须指定它。查看它的定义会有所帮助。
XSLT的默认输出不是XML,因为XSLT可以编写任何内容。