有没有办法创建文件路径来自文件名的grunt构建?
我有:
xsltproc: {
options: {
stylesheet: 'templates/xmlCompiler.xsl'
},
compile: {
files: [{
expand: true,
cwd: 'resources/dist/xml',
src: '*.xml',
dest: 'build',
ext: '.html'
}]
}
},
基本上会基于.xml文件创建.html文件。现在,我有一项任务是创建每个HTML文件,其结构为:
建立/ xmlfilename / index.html中
例如: xml文件:xml / aa.xml ,xml / bb.xml ,xml / cc.xml 。 构建后,它变为:build / aa /index.html,build / bb /index.html,build / cc /index.html
它试图查看文件,但我找不到任何文件。你们有任何想法或链接指导我吗?
答案 0 :(得分:0)
现在,我有一项任务是创建每个HTML文件,其结构为:
建立/ xmlfilename / index.html中
HTML文件没有文件结构,它基本上只是一个文本文件。我假设您的意思是要处理多个XML文件,并且希望将它们存储在不同的目录中?
假设您使用XSLT 2.0(否则无论如何都无法创建多个结果文档),您可以执行以下操作:
<xsl:template name="main">
<xsl:apply-templates select="collection('xml/*.xml')" />
</xsl:template>
<xsl:template match="/">
<xsl:variable name="path" select="replace(base-uri(), '.xml', '/')" />
<xsl:result-document href="{$path}index.html">
<xsl:apply-templates />
</xsl:result-document>
</xsl:template>
此代码假定您的处理器将自动创建目录(如果该目录不存在)。如果它不这样做,你应该求助于扩展函数(或写一个UriResolver
,这是大多数处理器以某种方式支持的)。但由于您没有提供有关您使用的处理器的任何信息,我无法进一步提出建议。