Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/12/2008, 05:59
Avatar de jam1138
jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Acceder bloque CDATA "puro" con XSL

Nuevamente batallando con XSL en algo que pareciera ser simple. Tengo un XML como sigue:
Código xml:
Ver original
  1. <seccion>
  2.         <code><![CDATA[
  3. Donec nec justo eget felis facilisis fermentum. Aliquam porttitor
  4. mauris sit amet orci. Aenean dignissim pellentesque felis.
  5. ]]>
  6.         </code>
  7. </seccion>
Nótese el salto de línea y los espacios (de la indentación del XML) que hay entre ]]> y la etiqueta de cierre </code>.

Como podrá sospecharse, necesito la información del nodo CDATA tal cuál está; con saltos de línea, indentado, y todo lo que pueda tener, exclusivamente lo que corresponde. Actualmente lo cacho con XSL de la siguiente manera:
Código xml:
Ver original
  1. <xsl:template match="code">
  2.     <xsl:text>
  3. [PROG]</xsl:text>
  4.     <xsl:value-of select="." disable-output-escaping="yes" />
  5.     <xsl:text>[/PROG]
  6. </xsl:text>
  7. </xsl:template>

Obteniendo el siguiente resultado:
Código:
[PROG]
Donec nec justo eget felis facilisis fermentum. Aliquam porttitor 
mauris sit amet orci. Aenean dignissim pellentesque felis.

        [/PROG]
Osea, como estoy recuperando todo el contenido de la etiqueta, incluye el salto de línea y los espacios que hay entre ]]> y </code>. ¿Hay manera traer única y exclusivamente lo que venga entre <![CDATA[ y ]]>?.

Esperaría el siguiente resultado:
Código:
[PROG]
Donec nec justo eget felis facilisis fermentum. Aliquam porttitor 
mauris sit amet orci. Aenean dignissim pellentesque felis.
[/PROG]
Nuevamente, no tengo control sobre el XML que se procesará, la salida es texto plano; toda la info que encontré es para salida tipo XML y/o HTML :-/.

Ojalá nuevamente me brinden una pista. Gracias de antemano .
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"