user5182503
user5182503

Reputation:

How to pass XSLT parameter with maven-xml-plugin?

This is a piece of my xslt 2.0 file:

<xsl:template match="test-one">
        <xsl:apply-templates select="document('../test.xml')//class"/>
</xsl:template>

As it is seen path ../test.xml is hard coded. Now I want to pass path as parameter using xml-maven-plugin. So I do:

<transformationSet>
    <dir>src/test/resources</dir>
    <includes>foo.xml</includes>
    <stylesheet>xslfile.xsl</stylesheet>
    <parameters>
        <parameter>
          <name>path</name>
          <value>../test.xml</value>
        </parameter>
    </parameters>
    <outputDir>${project.build.directory}/test-classes/META-INF</outputDir>
</transformationSet>

However, I can't understand how to add this path to xslt file. I tried:

<xsl:template match="test-one">
        <xsl:apply-templates select="document('$path')//class"/>
</xsl:template>

But it didn't work. Could anyone say how to do it?

Upvotes: 0

Views: 746

Answers (1)

Martin Honnen
Martin Honnen

Reputation: 167716

For XSLT, to use external parameters, you need to declare them at the top level, i.e. as children of xsl:stylesheet or xsl:transform: <xsl:param name="path"/>.

Upvotes: 0

Related Questions