Переменная XSL в нижний регистр - PullRequest
2 голосов
/ 21 января 2011

У меня есть данные фида XML, которые мне нужно преобразовать в ссылку, используя XSL v1.0 ... это работает, но значение TYPE должно быть в нижнем регистре для правильной работы ссылки:

<a href="http://www.mysite.com/{TYPE}={ID}" target="_blank">
  <img src="{IMAGE}" />
</a>

Итак, я попытался сделать это, но это приводит к ошибкам, и мне трудно устранить неполадки, поскольку ошибка возвращается как «Ошибка компиляции XSLT в (1,991). Подробности см. В InnerException». (ниже приведен фрагмент кода).

<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />

<xsl:element name="a">
  <xsl:attribute name="href">
    <xsl:value-of select="concat('http://www.mysite.com/', translate(TYPE, $uppercase, $smallcase),'=',ID)"/>
  </xsl:attribute>
  <xsl:attribute name="target">
    <xsl:text>_blank</xsl:text>
  </xsl:attribute>
  <xsl:text><img src="{IMAGE}" /></xsl:text>
</xsl:element>

Есть ли какая-то явно очевидная ошибка, которую я пропускаю? Или, может быть, более простой метод?

Ответы [ 2 ]

4 голосов
/ 21 января 2011

намного чище:

<a href="http://www.mysite.com/{translate(
                                   TYPE,
                                   $uppercase,
                                   $smallcase)}={ID}"
   target="_blank">
   <img src="{IMAGE}" />
</a> 
2 голосов
/ 21 января 2011
<xsl:text><img src="{IMAGE}" /></xsl:text>

должно быть просто

<img src="{IMAGE}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...