2010-10-08 3 views
1

У меня проблема с передачей аргументов из задачи стиля NAnt на лист xslt. Это мой фрагмент кода NAnt. Путь и файл свойств определенно заданы.NANT: параметр передачи задачи стиля в xslt

<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" /> 

Но когда файл преобразуется, $ путь и $ файла являются пустыми. Я пробовал с и без namespaceuri задачи стиля.
Что я делаю неправильно?

Спасибо вам в ожидании.

+0

не работает с xsltproc eiter – Dennis

ответ

0

Хммм, почему вы устанавливаете $ file и используете $ doc?

Кстати, вот рабочий пример:

<style style="web.config.xsl" in="web.config.xsl" out="web.config"> 
<parameters> 
    <parameter name="OSVersion" value="${OSVersion}"/> 
</parameters> 
</style> 

и XSL:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:param name="OSVersion"/> 
<xsl:template match="/"> 
    <xsl:value-of select="$OSVersion"/> 
</xsl:template> 
</xsl:stylesheet> 
+0

Я попробовал это в другой раз с незначительными изменениями в моем коде. Я инициализировал ' PATH', и он работает. Не знаю, почему, но ваш единственный, кто ответил на мой вопрос, вы получили признанный знак :-) – Dennis

0

Я просто столкнулся с этим явлением Деннис, описанный в своем комментарии по первому ответу. Похоже, что NAnt снова выполняет XSLT, если он изменился, и не замечает, что вы изменили параметры для элемента <style>. Следовательно, как только вы добавили свои <parameter> элементы в файл NAnt, запуск NAnt не приведет к запуску XSLT с новыми значениями параметров, если вы не изменили сам файл XSLT.

Смежные вопросы