Reemplazar una porción de carácter en XSLT
February 9, 2009 | In: component, componente_web, xsl
Función para reemplazar una porción de texto.
Función:
<!-- Replace funtion-->
<xsl:template name="replace-string">
<xsl:param name="str" />
<xsl:param name="delim" />
<xsl:param name="newdelim" />
<xsl:if test="string-length(substring-before($str,$delim)) = 0">
<xsl:value-of select="$str" />
</xsl:if>
<xsl:if test="string-length(substring-before($str,$delim)) > 0">
<xsl:value-of select="substring-before($str,$delim)" />
<xsl:value-of select="$newdelim" />
</xsl:if>
<xsl:if test="string-length(substring-after($str,$delim)) > 0">
<xsl:call-template name="replace-string">
<xsl:with-param name="str" select="substring-after($str,$delim)" />
<xsl:with-param name="delim" select="$delim" />
<xsl:with-param name="newdelim" select="$newdelim" />
<xsl:with-param name="ini" value="1" />
</xsl:call-template>
</xsl:if>
</xsl:template>
Ejemplo de uso:
<xml>
<title>
Name__MARCA__Alberto
</title>
</xml>
<xsl:template match="title">
<xsl:call-template name="replace-string">
<xsl:with-param name="str" select="." />
<xsl:with-param name="delim" select="'__MARCA__'"/>
<xsl:with-param name="newdelim" select="' : '" />
</xsl:call-template>
<xsl:value-of select="."/>
</xsl:template>
6 Responses to Reemplazar una porción de carácter en XSLT
Zathras
July 13th, 2009 at 6:45 am
Hola una consulta, primera vez que voy a usar XSL y tengo este problema necesito ingresarlo dentro de una etiqueta HTML es decir:
<img src=”http://www.miurl.com/imagenes/ ” />
Pero me sale error.
Tienes alguan idea
Zathras
July 13th, 2009 at 6:46 am
HTML:
Etiqueta
oliver cortinas
August 4th, 2009 at 10:53 pm
Tengo una imagen SVG a la cual le realizo unas transformaciones pero ahora quiero que cuando encuentre “rotate(-)” dentro del atributo transform de un tag text:
5
me lo cambie a “rotate(-0)” y quede:
5
alguna idea?
admin
August 5th, 2009 at 12:23 am
@oliver:
rotate(-0)
———————————–
Lo que no sé es cómo estás utilizando la info. Imagino que el data del SVG te viene en un nodo; y luego lo pintas en otro lado.
oliver cortinas
August 5th, 2009 at 6:27 pm
A ver el SVG ya viene en un formato XML(lo puse pero por eso me salio solo el 5 jajaja):
“” 5 “”
(agrego comillas para que no desaparezca el resto del TAG)
Como ven eso es XML lo que quiero hacer es reemplazar el rotate(-) por un rotate(-0) dentro del valor transform del TAG text, se enttiende mejor ahora?
oliver cortinas
August 5th, 2009 at 6:29 pm
bueno volvio a salir mal esto me esta calentando ya jajaja a ver tabulado sin las comillas y sin los < y
text
fill=blue
font-size=12
transform=translate(578, 319) rotate(-)
x=0
y=0
el texto dentro del tag es 5
fin del text