如何在XSLT中获得名字的首字母和姓氏
我想让你知道名字的首字母和姓氏 输入:如何在XSLT中获得名字的首字母和姓氏,xslt,Xslt,我想让你知道名字的首字母和姓氏 输入: <root> <ele name="Samp Huwani"/> <ele name="Gong Gitry"/> <ele name="Dery Wertnu"/> </root> 输出 <names>S Huwani</name> <names>G Gitry</name> <names>D Wertnu</n
<root>
<ele name="Samp Huwani"/>
<ele name="Gong Gitry"/>
<ele name="Dery Wertnu"/>
</root>
输出
<names>S Huwani</name>
<names>G Gitry</name>
<names>D Wertnu</name>
S胡瓦尼
吉特里
维特努酒店
试用代码:
<xsl:template match="root/name">
<names>
<xsl:value-of select="@name" />
</name>
</xsl:template>
我正在使用XSLT2.0。谢谢对于给定的示例,您可以使用:
<xsl:template match="/root">
<xsl:copy>
<xsl:for-each select="ele">
<name>
<xsl:value-of select="substring(@name, 1, 1)"/>
<xsl:text> </xsl:text>
<xsl:value-of select="substring-after(@name, ' ')"/>
</name>
</xsl:for-each>
</xsl:copy>
</xsl:template>
但是,名称通常不符合相同的模式
在XSLT2.0中,您可以通过使用正则表达式来简化(?)这一点,例如:
<xsl:value-of select="replace(@name, '^(.{1}).* (.*)', '$1 $2')"/>
对于完整的规范,您需要说明@name中可能存在哪些其他类型的值,以及您希望如何处理它们。例如,如果它包含“迈克尔·霍华德·凯”,或者包含“诺曼·福斯特爵士”,您想要什么。