我不能完全肯定我的答案,因爲我似乎不能正確理解你的問題,但立足您引用線程和你的報價上,我可以拿出提出以下建議:
的build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Test XSLT" default="test-xslt" basedir=".">
<target name="test-xslt">
<xslt in="test.xml" style="ant-with-param.xsl" out="ant-with-param-out.xml">
<param name="param-set-id" expression="2"/>
</xslt>
</target>
</project>
的test.xml:
<?xml version="1.0" encoding="UTF-8"?>
<params>
<set id="1">
<param name="name" value="Name from the first set"/>
</set>
<set id="2">
<param name="name" value="Name from the second set"/>
</set>
</params>
螞蟻與 - param.xsl:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
extension-element-prefixes="exsl">
<xsl:param name="param-set-id"/>
<xsl:variable name="param-set" select="//params/set[@id = $param-set-id]"/>
<xsl:template match="/">
<name>
<xsl:value-of select="exsl:node-set($param-set)//param[@name = 'name']/@value"/>
</name>
</xsl:template>
</xsl:stylesheet>
輸出:
<?xml version="1.0" encoding="UTF-8"?>
<name>Name from the second set</name>
鑑於樣式表上讀取的值從輸入文檔築底參數從構建文件傳遞的變量。藉助源文檔中的XPath表達式獲取參數,稍後在exsl:node-set()
擴展功能的幫助下使用。默認情況下,ant
使用Xalan
作爲xslt處理器。其擴展名的完整列表可在project's home page找到。
您只需要通過ant將參數傳遞給xslt,或者您想將構建文件的一部分作爲參數傳遞給xslt樣式表? – 2011-02-19 12:44:32