2012-01-06 6 views
5

tengo mi XML de origen, como a continuacióntraducir un patrón de encordado en otro patrón de encordado mediante XSLT

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

me gustaría transformar por encima de XML en

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

siempre que sea en el contenido del archivo de datos elemento XML de origen está teniendo letra mayúscula Me gustaría prefijar espacio entremedio. ¿Puedo tener la muestra XSLT 2.0 de cómo puedo lograr esto?

Respuesta

4

utiliza una plantilla como esta:

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

Esto realiza de forma genérica la regla de todo el contenido de texto en la entrada. Puede hacer que esto sea más específico (si hay otros elementos que no desea traducir). La función replace es el punto clave.

Cuestiones relacionadas