2012-01-06 49 views
5

我有源XML像下面使用XSLT

<contents> 
    <content>AuthorInformation</content> 
    <content>PersonInformation</content> 
    <content>PersonPersonalInformation</content> 
    <content>GurdianDetails</content> 
</contents> 

我想变换上面的XML成

<contents> 
    <content>Author Information</content> 
    <content>Person Information</content> 
    <content>Person Personal Information</content> 
    <content>Gurdian Details</content> 
</contents> 

无论在源XML文件的内容元素数据转换一个字符串模式到另一个字符串模式有大写字母我想在前缀空格之间。我可以获得XSLT 2.0示例,了解如何实现此目的。

回答

4

使用这样的模板:

<xsl:template match="text()"> 
    <xsl:value-of select="replace(., '([a-z])([A-Z])', '$1 $2')"/> 
</xsl:template> 

这一般执行对输入的所有文本内容的规定。你可以很容易地使这个更具体(如果有其他元素,你不想翻译)。关键点在于功能replace