2010-09-22 1 views
2

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

т.е:
"Name",
:

В XML " R eturns на что-то из чего-то."

Потребность (в HTML):
Имя г eturns на что-то из чего-то.

+0

Хороший вопрос (+1). См. Мой ответ на короткое решение XSLT. :) –

ответ

2

Это 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, но это выглядело бы очень громоздким.

+1

@ Dimitre: Хороший ответ, но я думаю, что вопрос OP имеет эти '*' только для уточнения. Кроме того, он должен сказать, что с помощью 'fn: translate()' вам нужно явно определить alfabeth. Знаешь, я не английский. – 2010-09-22 17:56:09

+0

@Alejandro: Нет проблем, просто передайте алфавит, нижний и верхний регистр в качестве параметров. –

+2

@Alejandro: Бесполезно спорить о том, что OP мог думать ... У нас есть то, что он написал. Очевидно, что XLM означает XML, а «sentense» означает «string». Все остальное - это предположение, и давайте не будем сравнивать мои фантазии с вашими :) –

Смежные вопросы