У меня есть XML-преобразования, который имеет переменную год:Создание XML-ключ отличаться в зависимости от условного
<xsl:variable name="rptYearVal" select= "//Reports/Report/year" />
и некоторые ключи для поиска значений, которые мне нужно использовать:
<xsl:key name="LUState" match="lookupTypes/LookupState/code" use="@id" />
<xsl:key name="LUZip" match="lookupTypes/LookupZipType/code" use="@id" />
Теперь у меня есть необходимо указать ключ (в частности, соответствие) на основе переменной года, которую я установил. Так, в течение 2016 года, матч должен быть добавлен узел:
матч = "lookupTypes/lookupData/LookupState/код"
Я думал, что я мог бы использовать условный, например, так:
<xsl:variable name="LookupLocation">
<xsl:choose>
<xsl:when test = "$rptYearVal = '2016'">
<xsl:text>lookupTypes/lookupData</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>lookupTypes</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:variable/>
<xsl:key name="LUState" match="$LookupLocation/LookupState/code" use="@id" />
, но это вызывает ошибку.
Может ли кто-нибудь указать мне правильное направление с помощью этого кода?
Если это не ошибка копирования/вставки, ' xsl: variable />' определенно является проблемой. Удалите второй '/'. – AJNeufeld
Возможный дубликат [Можно ли использовать переменные внутри xsl: key инструкция?] (Http: // stackoverflow.com/questions/14404408/is-it-possible-to-use-a-variables-inside-xslkey-инструкция) – AJNeufeld
Если вы получаете сообщение об ошибке, отправьте точное сообщение об ошибке. Также укажите, используете ли вы XSLT 1.0 or2.0. –