2010-01-28 8 views
32

Tengo un archivo de plantilla de velocidad que tiene los datos de xml. Quiero convertir la cadena en tipo entero.Cómo convertir una cadena en un entero en una plantilla de velocidad?

¿Cómo puedo hacer eso?

+0

tiene un archivo XSLT que opera en un documento de entrada XML y desea convertir un campo que sea de tipo xs: string en tipo xs: integer? – vicatcu

+0

sí, tengo el doucument de entrada xml que tiene el valor de cadena y quiero convertirlo a entero – uma

+0

¿por qué no aceptó la respuesta? –

Respuesta

73

Aha! Estado allí.

#set($intString = "9") 
#set($Integer = 0) 
$Integer.parseInt($intString) 

Haciendo esto utiliza la velocidad subyacente de Java. La variable $ Integer no es más que un objeto Integer de Java que puede usar para acceder a .parseInt

Editar: El código anterior es para demostración. Por supuesto, hay formas de optimizarlo.

+0

hola gracias funciona bien. – uma

+0

¡Me alegro de poder ayudar! – Quotidian

+0

Gracias, funciona bien y cura el dolor de cabeza. – Matt

9

Si tiene algún control sobre el contexto de velocidad, aquí hay una alternativa que alivia la necesidad de establecer una variable en la plantilla de Velocity.

Context velocityContext = new Context(); 
velocityContext.put(Integer.class.getSimpleName(), Integer.class); 

Esto le permite llamar a los métodos estáticos de java.lang.Integer en su plantilla con $Integer.parseInt($value) y no se basa en la #set haber sido llamado antes de realizar la conversión de tipo en la plantilla.

Cuestiones relacionadas