ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cox, Charlie" <c...@cincom.com>
Subject xslt task with foreach
Date Fri, 07 Feb 2003 13:25:19 GMT
I'm having trouble getting this task to work. What I need is to run an xslt
task for each file in the directory and I need the filename to be passed as
a parameter to the xslt.

This is what I have so far and it works for one file, but when I have many
files, the xslt task processes all the files passing in the name of the
first file to each one, then it tries to complete the foreach by running the
xslt task for the rest, which does nothing since it already did them all.

<target name="all">
	<foreach param="htmlFileName" target="convertXsl">
		<fileset dir="html" includes="*.htm"/>
	</foreach>
</target>

<!-- process a given file. called by the 'all' target -->
<target name="convertXsl">
	<!-- get the name of the document without the path -->
	<basename file="${htmlFileName}" property="baseName"/>
	<echo message="processing....${baseName}"/>
	<!-- convert the style first -->
	<xslt basedir="html" destdir="xsl" extension=".xsl"
style="myxsl.xsl" processor="trax" >
		<param name="myFormName" expression="${baseName}"/>
		<xmlcatalog>
			<dtd publicId="-//W3C//DTD XHTML 1.0
Transitional//EN" location="xhtml.dtd"/>
		</xmlcatalog>
	</xslt>
</target>

I tried adding includes="$(baseName)" for the xslt task, which caused it to
not process any files. Likewise for includes="$(htmlFileName)".

how can I get the foreach to go through the list of files and the xslt to
process only the given file?

thanks,
Charlie

Mime
View raw message