XSLT 任务中的属性扩展不起作用



问题如下:

我有一个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可以编写任何内容。

相关内容

  • 没有找到相关文章

最新更新