NANT:将参数传递给 xslt 的样式任务
我在将参数从 NAnt 样式任务传递到 xslt 表时遇到问题。 这是我的 NAnt 代码片段。属性路径和文件已明确设置。
<style style="${xslt.file}" extension="xml" in="${xml.file}" destdir=".">
<parameters>
<parameter name="path" value="${path}"
namespaceuri="http://www.w3.org/1999/XSL/Transform" />
<parameter name="doc" value="${file}"
namespaceuri="http://www.w3.org/1999/XSL/Transform" />
</parameters>
</style>
我的参数声明如下:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="http://schemas.microsoft.com/developer/msbuild/2003">
<xsl:param name="path"></xsl:param>
<xsl:param name="file" />
访问者:
<xsl:value-of select="$path" />
<xsl:value-of select="$file" />
但是当文件转换时,$path 和 $file 都是空的。我尝试过使用和不使用样式任务的namespaceuri。
我做错了什么?
在期待中感谢您。
I have a problem with passing arguments from the NAnt style task to a xslt sheet.
This is my NAnt code snippet. The properties path and file are definetly set.
<style style="${xslt.file}" extension="xml" in="${xml.file}" destdir=".">
<parameters>
<parameter name="path" value="${path}"
namespaceuri="http://www.w3.org/1999/XSL/Transform" />
<parameter name="doc" value="${file}"
namespaceuri="http://www.w3.org/1999/XSL/Transform" />
</parameters>
</style>
My Parameter are declared as following:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="http://schemas.microsoft.com/developer/msbuild/2003">
<xsl:param name="path"></xsl:param>
<xsl:param name="file" />
And accessed by:
<xsl:value-of select="$path" />
<xsl:value-of select="$file" />
But when the file is transformed, $path and $file are both empty. I have tried with and without the namespaceuri of the style task.
What I am doing wrong?
Thanking you in anticipation.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
嗯,为什么要设置 $file 并使用 $doc ?
顺便说一句,这是一个工作示例:
以及 XSL:
Hmmm, why do you set $file and use $doc ?
BTW, here is a working example:
and the XSL:
我刚刚遇到丹尼斯在他对第一个答案的评论中描述的现象。看来 NAnt 仅在 XSLT 发生更改时才再次执行该 XSLT,并且没有注意到您已更改
元素的参数。因此,将
元素添加到 NAnt 文件后,运行 NAnt 不会导致 XSLT 使用新参数值运行,除非您更改了 XSLT 文件本身。I just encountered the phenomenon Dennis described in his comment on the first answer. It seems that NAnt only executes the XSLT again if it has changed and doesn't notice that you have changed the parameters for the
<style>
element. Hence, once you have added your<parameter>
elements to your NAnt file, running NAnt will not cause the XSLT to run with the new parameter values unless you have changed the XSLT file itself.