Задача xslt Ant не передает параметры в мою таблицу стилей

#ant

#ant

Вопрос:

У меня есть таблица стилей, подобная этой

 <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:param name="testParam"/>
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" />
        </xsl:copy>
    </xsl:template>
    <xsl:template match="resources/integer[@name='LOG_LEVEL']/text()">
        <xsl:value-of select="$testParam"/>
    </xsl:template>
</xsl:stylesheet>
 

И у меня есть входной xml, подобный этому:

 <?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="LOG_LEVEL">3</integer>
    <string name="app_name">Test Application</string>
</resources>
 

Но когда я пытаюсь вызвать преобразование xslt в ant, используя это:

 <xslt in="in.xml" out="out.xml" style="style_above.xsl">
    <outputproperty name="method" value="xml"/>
    <outputproperty name="encoding" value="UTF-8"/>
    <outputproperty name="indent" value="yes"/>
    <param name="testParam" expression="test"/>
</xslt>
 

Я получаю следующее:

 <?xml version="1.0" encoding="UTF-8"?>
<resources>
    <integer name="LOG_LEVEL"/>
    <string name="app_name">Test Application</string>
</resources>
 

похоже, что мой параметр xslt не изменяет значение, которое я указываю в своей цели ant

Комментарии:

1. Кстати, я использую ANT 1.8.2

2. Это работает просто отлично. Протестировал его с помощью ant 1.8.2 🙂

Ответ №1:

Да, я понял, что проблема в другом. Собирался обновить это было слишком поздно. Я определил задачу xslt в макросе, и у меня есть необязательный элемент, также названный param, и это было виновником. Спасибо