2

我可以使用 XSL 模板将第二个字符串的第一个字母更改为小写吗?或者有没有办法在 HTML 中将第二个字符串的第一个字母更改为小写?第一个字母的伪代码不起作用,因为它只能是选择器的主题。

IE:

在 XML 中:
“名称”、
“返回某物的某物。”

需要(在 HTML 中):
名称r返回某物的某物。

4

1 回答 1

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 表达式中也可以做到这一点,但它看起来非常笨拙。

于 2010-09-22T17:09:00.320 回答