Reemplazar caracteres especiales en XSLT

Quiero eliminar caracteres que no sean alfabetos de una cadena en XSLT. Por ejemplo

O'Niel = ONiel St Peter = StPeter A.David = ADavid 

¿Podemos usar Expresión Regular en XSLT para hacer esto? ¿Cuál es la forma correcta de implementar esto?

EDITAR: Esto debe hacerse en XSLT 1.0.

Hay una forma pura de XSLT para hacer esto.

             

Resultado contra esta muestra:

  O'Niel St Peter A.David  

Estarán:

  ONiel StPeter ADavid  

Aquí hay una opción 2.0:

EDITAR: Lo siento … el requisito 1.0 se agregó después de que comencé mi respuesta.

XML

 < ?xml version="1.0" encoding="UTF-8"?>  O'Niel St Peter A.David  

XSL

 < ?xml version="1.0" encoding="UTF-8"?>             

salida

 < ?xml version="1.0" encoding="UTF-8"?>  ONiel StPeter ADavid  

Acabo de crear una función basada en el código en este ejemplo …

       

y un ejemplo del uso sería el siguiente: