Я знаю, что на вопрос был дан ответ уже несколько раз, но по какой-то причине не работает для меня. Так что я хочу добиться того, чтобы вывести содержимое элемента, используя это значение атрибута для доступа к нему, но вместо того, чтобы объявить конкретное значение для атрибута, как:
<xsl:value-of select="title[@attribute='value']"/>
Это работает для моего кода, но я хочу использовать переменную как:
<xsl:value-of select="title[@attribute='$variable']"/>
, но независимо от того, что я делаю, или различные способы стараюсь это , такие как:
<xsl:value-of select="//title[@attribute='$variable']"/>
или
<xsl:value-of select="//title[@attribute= $variable]"/>
не ouptut ничего, и я не получаю никаких ошибок от саксонской, так что я понятия не имею, что происходит.
XML файл
<root>
<documentname>
<element>text</element>
.
.
<element1 atributename1="VALUE1">text</element1>
.
.
<element95 atributename1="value1" secondatribute="0001"/>
.
.
</documentname>
</root>
XSL файл
<xsl:template match="element95 ">
<xsl:choose>
<xsl:when test="@atributename1">
<xsl:variable name="keyb" select="substring(@secondatribute,1,4)"/>
<xsl:variable name="keyval" select="substring(@atributename1, 0,6)" />
<xsl:variable name="keyc">
<xsl:value-of select="'upper-case($keyval)'"/></xsl:variable>
<a href="#{$keyc}"><xsl:value-of select="($keyb)"/>.0(<xsl:value-of select="//element1 [@atributename1=($keyc)]"/>)</a>
</xsl:when>
</xsl:choose>
Выход:
1.0()
желательно Ouput:
1.0(text)
Ничего из этого не компилируется для меня, ']' отсутствует. – biziclop
Можете ли вы включить минимальную таблицу стилей XSL и тестовый документ, который создает эту проблему? – biziclop
@Eugenios ваш последний фрагмент выглядит отлично, поэтому невозможно сказать, что было не так, не имея возможности увидеть минимальный, но полный пример, демонстрирующий проблему. – har07