Использование XSL для объединения двух строк из XML, вывод в виде HTML - PullRequest
2 голосов
/ 22 сентября 2010

Можно ли изменить первую букву второй строки на строчные с использованием шаблона XSL?Или есть способ изменить первую букву второй строки в нижний регистр в HTML?Первый буквенный псевдокод не работает , так как может быть только объектом селектора.

т.е.:

В XML:
"Имя",
" R переворачивает что-то из чего-то."

Необходимость (в HTML):
Имя r переворачивает что-то из чего-то.

1 Ответ

2 голосов
/ 22 сентября 2010

Это XSLT-преобразование :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="/*">
  <xsl:variable name="v1stchar" select=
  "substring(translate(s[2],translate(s[2],'ABCDEFGHIJKLMNOPQRSTUVWXYZ', ''),''),1,1)"/>
  <xsl:value-of select=
  "concat(s[1],
          ' ',
          substring-before(s[2], $v1stchar),
          translate($v1stchar,'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),
          substring-after(s[2], $v1stchar)
          )
  "/>
 </xsl:template>
</xsl:stylesheet>

при применении к этому XML-документу :

<t>
 <s>Name</s>
 <s>*R*eturns the something of the something.</s>
</t>

создает искомый, правильный результат :

Name *r*eturns the something of the something.

Это можно сделать даже в одном выражении XPath , но это выглядело бы действительно громоздким.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...