<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Indalcasa &#187; Xslt</title>
	<atom:link href="http://www.indalcasa.com/category/programacion/xslt/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.indalcasa.com</link>
	<description>Un blog de tecnologia</description>
	<lastBuildDate>Thu, 02 Sep 2010 00:34:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Convertir un texto a mayusculas (toUpper) o minusculas (toLower) con transformadas xslt</title>
		<link>http://www.indalcasa.com/programacion/xslt/convertir-un-texto-a-mayusculas-toupper-o-minusculas-tolower-con-transformadas-xslt/</link>
		<comments>http://www.indalcasa.com/programacion/xslt/convertir-un-texto-a-mayusculas-toupper-o-minusculas-tolower-con-transformadas-xslt/#comments</comments>
		<pubDate>Wed, 01 Sep 2010 14:03:12 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Xslt]]></category>
		<category><![CDATA[transformada]]></category>
		<category><![CDATA[transformadas]]></category>
		<category><![CDATA[Xml]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=612</guid>
		<description><![CDATA[Muchas veces, cuando necesitamos manipular texto desde transformaciones xsl, nos encontramos con el caso de que tenemos un texto en mayúsculas o un texto en minúsculas y queremos convertirlo a minúsculas o mayúsculas respectivamente. En cualquier lenguaje, solemos tener métodos para hacer un ToUpper, strtoupper o por el contrario ToLower, strtolower y similares, pero en xsl, al ser [...]]]></description>
			<content:encoded><![CDATA[<p>Muchas veces, cuando necesitamos manipular texto desde <strong>transformaciones xsl</strong>, nos encontramos con el caso de que tenemos un <strong>texto en </strong><strong>mayúsculas</strong> o un <strong>texto en </strong><strong>minúsculas</strong> y queremos convertirlo a <strong>minúsculas</strong> o<strong> mayúsculas</strong> respectivamente. En cualquier lenguaje, solemos tener métodos para hacer un <strong>ToUpper</strong>, <strong>strtoupper</strong> o por el contrario <strong>ToLower</strong>, <strong>strtolower</strong> y similares, pero en <strong>xsl</strong>, al ser tan genérico, no disponemos de ese tipo de <strong>funciones</strong>, aunque si deberían de estar.</p>
<p>Para suplir esta necesidad, me he creado 2 funciones muy útiles que utilizan la <strong>funcion</strong><strong> </strong><strong>traslate</strong>, que comentare en otro articulo. Básicamente lo que hacemos es intercambiar una cadena por la otra en base a lo que va entrando por un texto. Con estas <strong>funciones</strong> podemos llamar a <strong>StringToLower</strong> o <strong>StringToUpper</strong> como si de un <strong>template</strong> normal se tratase, indicandole el texto que queremos <strong>convertir a </strong><strong>mayúsculas</strong> o <strong>convertir a </strong><strong>minúsculas</strong> y automáticamente nos convertirá la cadena.</p>
<p>El código seria el siguiente:</p>
<blockquote>
<pre class="xml"><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Variables globales --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;lower&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'abcdefghijklmnopqrstuvwxyz'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;upper&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'ABCDEFGHIJKLMNOPQRSTUVWXYZ'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Convierte una cadena de texto, todo en minusculas --&gt;</span></span>
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- @param string text Cadena a convertir a minusculas --&gt;</span></span>
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- @return Cadena en minusculas --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;StringToLower&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;translate($text,$upper,$lower)&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Convierte una cadena de texto, todo en mayusculas --&gt;</span></span>
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- @param string text Cadena a convertir a mayusculas --&gt;</span></span>
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- @return Cadena en mayusculas --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;StringToUpper&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;translate($text,$lower,$upper)&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:call-template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;StringToLower&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:with-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span>
      <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'Mi texto que quiere ser Reemplazado a minusculas'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:call-template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:call-template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;StringToUpper&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:with-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span>
      <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'Mi texto que quiere ser Reemplazado a mayusculas'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:call-template<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
</blockquote>
<p>El resultado de esta <strong>tranformacion</strong> del <strong>StringToLower</strong> seria "mi texto que quiere ser reemplazado a minúsculas" y la segunda llamada con el <strong>StringToUpper</strong> seria "MI TEXTO QUE QUIERE SER REEMPLAZADO A MAYUSCULAS". Esto es algo muy útil para trabajar con textos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/xslt/convertir-un-texto-a-mayusculas-toupper-o-minusculas-tolower-con-transformadas-xslt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como dar formato a un número en xslt: format-number</title>
		<link>http://www.indalcasa.com/programacion/como-dar-formato-a-un-numero-en-xslt-format-number/</link>
		<comments>http://www.indalcasa.com/programacion/como-dar-formato-a-un-numero-en-xslt-format-number/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 13:25:06 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Xslt]]></category>
		<category><![CDATA[transformada]]></category>
		<category><![CDATA[transformadas]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=217</guid>
		<description><![CDATA[Para los que o bien nos guste, o bien nos vemos obligados a usar transformadas xslt a veces en exceso, muchas veces nos encontramos con algunos problemas como son los números. Cuando debemos de hacer operaciones que van mas allá de sumar y restar dentro de una transformada xslt, nos encontramos muchas veces con un [...]]]></description>
			<content:encoded><![CDATA[<p>Para los que o bien nos guste, o bien nos vemos obligados a usar <strong>transformadas xslt</strong> a veces en exceso, muchas veces nos encontramos con algunos problemas como son los <strong>números</strong>. Cuando debemos de hacer operaciones que van mas allá de sumar y restar dentro de una <strong>transformada xslt</strong>, nos encontramos muchas veces con un gran problema al mostrar los resultados de las operaciones. Por ejemplo, un caso practico (el mio de hoy, aunque me pasa desde que empecé a trabajar con <strong>xslt</strong>), ha sido que tengo que mostrar un combo (select) con maletas, pero cuando el trayecto es español, como no, al precio de esas maletas (incluido en el combo) hay que añadir un 7% de iva. Al proceder a esto, muchas veces me aparecen números que son auténticos chorizos, por ejemplo 37.000000004€, por lo que queda un poco feo en un combo. La solución es <strong>dar formato al numero/variable</strong> y dejarlo <strong>truncado a 2 decimales</strong>.</p>
<p>Para <strong>dar formato a un numero en una transformada xslt</strong>, podemos utilizar la <strong>función nativa de xslt format-number</strong>. Esta función cuenta con <strong>2 parámetros</strong>, un primero que especificamos el <strong>numero a dar formato</strong> y como segundo parámetro que especifica cual sera el <strong>formato que se le dará al numero</strong>. La función tendría un <strong>formato</strong> tal que:</p>
<blockquote><pre class="java"><span style="color: #808080; font-style: italic;">/**
 * Función de xslt nativa e independiente del lenguaje, ya sea java, .Net, php, etc. para dar formato a un numero desde XSLT
 * pero a veces puede provocar algún que otro fallo dependiendo del lenguaje que la implementa.
 * @param number Numero a dar formato
 * @param format Formato que se le dará, se utilizan los caracteres ('0', '#', '.', ',', '%')
 * @return Numero con su formato especificado
 */</span>
string format-number<span style="color: #66cc66;">&#40;</span>string number, string format<span style="color: #66cc66;">&#41;</span></pre>
</blockquote>
<blockquote><pre class="xml"><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;variable&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'7.35001'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;format-number($variable, '#.00')&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- El resultado es: 7.35 --&gt;</span></span></pre>
</blockquote>
<p>Para <strong>dar formato</strong>, podemos utilizar los siguientes caracteres:</p>
<ul>
<li><strong>'0'</strong>: Los ceros, indican dígitos obligatorios, ignorando los ceros a la izquierda o derecha si son en la parte entera o decimal. Si por ejemplo tenemos el 34 y le aplicamos como formato 0000, nos quedaría tal que 0034. Lo mismo ocurre con los decimales, si tenemos nuevamente 34, el resultado de aplicar 0000.00 seria 0034.00.</li>
<li><strong>'#'</strong>: La almohadilla (#), sirve para dar formato a los dígitos ignorando los ceros innecesarios. Por ejemplo, si tenemos el 0034 y el 0034.0500 y le aplicamos el formato #.#, nos dará como resultado 34 en primer lugar y 34.1 en segundo lugar. OJO, que redondea los números, si pusiéramos al 0034.0500 dos almohadillas tal que #.##, quedaría 34.05. Tener en cuenta, además de que redondea los números, que ignorara todos los ceros que haya después de la posición que ocuparía la almohadilla, a diferencia del '0', que mantendría esos ceros.</li>
<li><strong>'.'</strong>: El punto se utiliza para establecer el limitador decimal, para diferenciar entre la parte entera y la decimal.</li>
<li><strong>','</strong>: La coma se utiliza para indicar si queremos y donde queremos situar los separadores de miles, por ejemplo, si tenemos 1000 y le aplicamos un formato tal que # o ####, el resultado siempre sera 1000, pero si aplicamos el formato #,### nos quedara 1,000, que manteniendo el formato y pasando 12350, quedaría 12,350 como resultado.</li>
<li><strong>'%'</strong>: Devuelve el resultado en %, como pasa en otros programas como el Excel, cuando le aplicamos el %, nos multiplicara por 100 y mantendrá el símbolo de porcentaje al final, tal que 7 con formato #% quedaría 700% como resultado.</li>
<p>Espero que os sirva tanto a vosotros como a mi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/como-dar-formato-a-un-numero-en-xslt-format-number/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Reemplazar texto en transformada xslt</title>
		<link>http://www.indalcasa.com/programacion/reemplazar-texto-en-transformada-xslt/</link>
		<comments>http://www.indalcasa.com/programacion/reemplazar-texto-en-transformada-xslt/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 17:44:07 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Xml]]></category>
		<category><![CDATA[Xslt]]></category>
		<category><![CDATA[transformada]]></category>
		<category><![CDATA[transformadas]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=207</guid>
		<description><![CDATA[Trabajo desde hace años usando de una forma intensiva las transformadas xslt, y a pesar de que son fáciles de utilizar y se pueden hacer infinidad de cosas, llegando al caso de ser propiamente dicho, un lenguaje de programación, hay algo que siempre he echado en falta. A pesar de que xsl tiene funciones para [...]]]></description>
			<content:encoded><![CDATA[<p>Trabajo desde hace años usando de una forma intensiva las <strong>transformadas xslt</strong>, y a pesar de que son fáciles de utilizar y se pueden hacer infinidad de cosas, llegando al caso de ser propiamente dicho, un lenguaje de programación, hay algo que siempre he echado en falta. A pesar de que <strong>xsl</strong> tiene funciones para el tratamiento de cadenas como <strong>substring</strong>, <strong>startwith</strong>, <strong>concat</strong>, etc. nunca he visto que tenga una <strong>función para reemplazar texto</strong>, algo que seria muy útil. Siempre que he tenido que hacer un <strong>reemplazo de texto</strong> lo he hecho de diferentes formas, a cual mas chapucera. Si tenia que sustituir una frase entera, llenaba el <strong>xsl</strong> de <strong>xsl:if</strong> o de <strong>xsl:choose</strong> con sus consecuentes <strong>xsl:when</strong>, pero si tenia que sustituir parte de una frase, ya la cosa se complicaba mas, usando casi siempre el nombre de espacio <strong>user</strong>, y definiendo una función en el lenguaje que utilizaba (en mi caso .net), pero esto tiene un problema, si por algún casual, quiero migrar a otro lenguaje (que no veo yo a mi jefe mucho por la labor), la <strong>transformada</strong> no me serviría fuera del entorno de .net.</p>
<p>Para solucionar este problema, decidí crear una <strong>función de xsl</strong>, mas que una función es un <strong>template</strong>, pero como a mi me gusta usar los <strong>templates</strong> como funciones con parámetros, también me gusta llamarlas funciones. Bueno, el caso es que he creado una <strong>función/template</strong>, que recibe 3 parámetros, y que vendría a ser mas o menos como el <strong>replace de php</strong>, pero con el funcionamiento del <strong>replace de javascript</strong>, porque de momento solo reemplaza de 1 en 1, digamos que no es un <strong>replace all</strong>. La función recibe 3 parámetros, uno con el texto a base, la cadena de donde queremos reemplazar el texto, otro parámetro con el texto que va a ser reemplazado, y otro parámetro con el texto a reemplazar. El código de la función seria el siguiente:</p>
<blockquote><pre class="xml"><span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Funcion replace --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replace&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Cadena de texto --&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Texto que va a ser reemplazado --&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replaceText&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Texto a reemplazar --&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replacedText&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;
   <span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- El replace propiamente dicho --&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;substring-before($text,$replaceText)&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;$replacedText&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;substring-after($text,$replaceText)&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #808080; font-style: italic;">&lt;!-- Ejemplo de utilizacion --&gt;</span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:variable</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;price&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:call-template</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replace&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
      <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:with-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;text&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;$xml/POSIBILIDADES_PRECIO-IDA&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
      <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:with-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replaceText&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;','&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
      <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:with-param</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;replacedText&quot;</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;'.'&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
   <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:call-template<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:variable<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
</blockquote>
<p>Espero que esta pequeña f<strong>unción para xsl</strong>, os sea tan útil como a mi. Por cierto, el ejemplo me lo saque de uno que monte en el curro, así que cada uno lo tendrá que modificar en base a sus necesidades. A ver si me lo curro un poco y modifico la función para que sea un r<strong>eplace all</strong>, en lugar de un <strong>replace one</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/reemplazar-texto-en-transformada-xslt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Escapar texto en una transformada XSLT</title>
		<link>http://www.indalcasa.com/programacion/escapar-texto-en-una-transformada-xslt/</link>
		<comments>http://www.indalcasa.com/programacion/escapar-texto-en-una-transformada-xslt/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 11:57:55 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Xslt]]></category>
		<category><![CDATA[escapar texto]]></category>
		<category><![CDATA[transformada]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=59</guid>
		<description><![CDATA[Hace poco escribí como escribir el símbolo del euro en una transformada XSLT. Para completar lo que ya comenté en su momento, explicaré como se escapan caracteres en una transformada para no tener que recurrir a buscar códigos especiales de HTML tal como el &#8364;. Para escapar texto dentro de una transformada existe un parámetro [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco escribí como escribir el símbolo del euro en una <strong>transformada XSLT</strong>. Para completar lo que ya comenté en su momento, explicaré como se escapan caracteres en una transformada para no tener que recurrir a buscar códigos especiales de HTML tal como el &#128;.</p>
<p>Para escapar texto dentro de una transformada existe un parámetro llamado <strong>disable-output-escaping</strong> que toma los valores yes|no, en función de si queremos o no <strong>deshabilitar que se escapen caracteres</strong>. Este atributo se aplica a 2 <strong>etiquetas de XSL</strong>, la <strong>etiqueta xsl:text</strong> y la <strong>etiqueta xsl:value-of</strong>, aunque seguramente se aplique ha alguno más.</p>
<p>Ejemplo de como funciona:</p>
<blockquote><pre class="xml">  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:text</span> <span style="color: #000066;">disable-output-escaping</span>=<span style="color: #ff0000;">&quot;yes&quot;</span><span style="font-weight: bold; color: black;">&gt;</span></span>
     <span style="color: #339933;">&lt;![CDATA[&amp;euro;]]&gt;</span><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xsl:text<span style="font-weight: bold; color: black;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;$variable&quot;</span>
     <span style="color: #000066;">disable-output-escaping</span>=<span style="color: #ff0000;">&quot;no&quot;</span> <span style="font-weight: bold; color: black;">/&gt;</span></span>
&nbsp;</pre>
</blockquote>
<p>Cuando aplicamos <strong>disable-output-escaping</strong> sobre <strong>xsl:value-of</strong>, este <strong>deshabilitara el escapado</strong> si así se lo indicamos sobre el contenido de la variable. Por el contrario, al aplicarlo sobre el <strong>xsl:text</strong>, necesitamos poner el texto a escapar encerrado entre <strong>CDATA</strong>, ya que sino, puede dar errores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/escapar-texto-en-una-transformada-xslt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Division y resto (modulo) con XSLT</title>
		<link>http://www.indalcasa.com/programacion/division-y-resto-modulo-con-xslt/</link>
		<comments>http://www.indalcasa.com/programacion/division-y-resto-modulo-con-xslt/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 09:46:16 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Xslt]]></category>
		<category><![CDATA[division]]></category>
		<category><![CDATA[modulo]]></category>
		<category><![CDATA[resto]]></category>
		<category><![CDATA[transformadas]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=58</guid>
		<description><![CDATA[Cuando queremos hacer alguna operación sobre un par de número en una transformada (XSLT) lo hacemos con el símbolo + o *, la cuestión esta en cuando queremos dividir o calcular el resto o módulo de una división, los caracteres tradicionales para estas operaciones / y % entran en conflicto con XPath, por lo que [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando queremos hacer alguna operación sobre un par de número en una transformada (XSLT) lo hacemos con el símbolo <strong style="text-decoration: underline">+</strong> o <strong style="text-decoration: underline">*</strong>, la cuestión esta en cuando queremos <strong>dividir o calcular el resto o módulo de una división</strong>, los caracteres tradicionales para estas operaciones <strong style="text-decoration: underline">/</strong> y <strong style="text-decoration: underline">%</strong> entran en <strong>conflicto con XPath</strong>, por lo que no se pueden usar tal cual, por lo que usaremos las siguientes instrucciones.</p>
<p>Usaremos la <strong>palabra reservada <span style="text-decoration: underline">div</span></strong> para realizar la división de 2 números, siendo el código.</p>
<blockquote><pre class="xml">  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;9 div 3&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span></pre>
</blockquote>
<p>Para realizar el <strong>calculo del módulo o resto de una división</strong>, usaremos la <strong>palabra reservada <span style="text-decoration: underline">mod</span></strong> siendo su sintaxis igual que la del div.</p>
<blockquote><pre class="xml">  <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xsl:value-of</span> <span style="color: #000066;">select</span>=<span style="color: #ff0000;">&quot;5 mod 2&quot;</span><span style="font-weight: bold; color: black;">/&gt;</span></span></pre>
</blockquote>
<p>Espero que este articulo pueda ayudar a mucha gente ya que estube horas hasta dar con la solucion de como hacer una <strong>division en una transformada XSLT</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/division-y-resto-modulo-con-xslt/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Símbolo del euro en xml o xslt sin utf-8</title>
		<link>http://www.indalcasa.com/programacion/html/simbolo-del-euro-en-xml-o-xslt-sin-utf-8/</link>
		<comments>http://www.indalcasa.com/programacion/html/simbolo-del-euro-en-xml-o-xslt-sin-utf-8/#comments</comments>
		<pubDate>Mon, 26 May 2008 18:11:43 +0000</pubDate>
		<dc:creator>Juan</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[Xml]]></category>
		<category><![CDATA[Xslt]]></category>
		<category><![CDATA[euro]]></category>
		<category><![CDATA[iso-8859-1]]></category>
		<category><![CDATA[utf-8]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://www.indalcasa.com/?p=51</guid>
		<description><![CDATA[Durante el desarrollo de mi último proyecto, me encontré con un xml de transformación o xslt, donde debía de usar el símbolo del euro (€), pero esta transformada, que no deja de ser un xml, estaba codificada en iso-8859-1, y no podía cambiar la codificación. A la hora de añadir el símbolo del euro, si [...]]]></description>
			<content:encoded><![CDATA[<p>Durante el desarrollo de mi último proyecto, me encontré con un <strong>xml </strong>de transformación o <strong>xslt</strong>, donde debía de usar el <strong>símbolo del euro (€)</strong>, pero esta <strong>transformada</strong>, que no deja de ser un <strong>xml</strong>, estaba codificada en <strong>iso-8859-1</strong>, y no podía cambiar la <strong>codificación</strong>. A la hora de añadir el <strong>símbolo del euro</strong>, si usaba directamente el <strong>carácter €</strong>, fallaba porque estaba <strong>mezclando codificaciones</strong>, y si usaba <strong>&amp;euro;</strong> como viene siendo en <strong>html</strong>, fallaba porque no es un <strong>carácter válido de xslt</strong>. La solución, usar los <strong>caracteres especiales</strong>, en este caso para el <strong>euro (€)</strong> es el <strong>&amp;#128;</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.indalcasa.com/programacion/html/simbolo-del-euro-en-xml-o-xslt-sin-utf-8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
