Pregunta

Estoy tratando de tomar la cadena "<BR>"en VB.NET y convertirlo a HTML a través de XSLT.Cuando el código HTML que sale, sin embargo, se parece a esto:

&lt;BR&gt;

Sólo puedo suponer sigue adelante y trata de hacerla.Hay alguna manera de que pueda convertir a los &lt;/&gt; de vuelta en los soportes, así que conseguir el salto de línea estoy tratando de para?

¿Fue útil?

Solución

Compruebe el XSLT tiene:

<xsl:output method="html"/>

editar:explicación de los comentarios

Por defecto XSLT resultados como XML(1) lo que significa que se va a escapar de cualquier significativos personajes.Puede anular este en casos específicos con el atributo disable-output-escaping="yes" (intro aquí), pero mucho más poderoso es el cambio de la salida para el valor explícito de HTML que confía mismo beneficio a nivel mundial, como los siguientes:

  • Para la secuencia de comandos y elementos de estilo, sustituya los caracteres de escape ( como & y >) con sus valores reales (& y >, respectivamente).
  • Para los atributos, reemplazar todas las apariciones de > con >.
  • Escribir vacío de elementos tales como <br>, <img>, y <input> sin etiquetas de cierre o de barras.
  • Escribir los atributos que transmiten información a través de su presencia como se opuso a su valor, tales como revisado y seleccionado, en minimizadas el formulario.

a partir de un sólido de IBM artículo cubrir el tema más reciente de la cobertura de stylusstudio aquí

Si la salida de HTML es lo que deseo salida HTML es lo que se debe especificar.

(1) No es en realidad esquina caso de que la salida por defecto HTML, pero creo que no es universal y es un poco obtuso que dependen de él.

Otros consejos

Intenta envolverlo con <xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>

No sé sobre XSLT pero ...

Una solución alternativa podría estar usando HttpUtility.HtmlDecode del espacio de nombres System.Web.

using System;
using System.Web;

class Program
{
    static void Main()
    {
        Console.WriteLine(HttpUtility.HtmlDecode("&lt;br&gt;"));
        Console.ReadKey();
    }
}

...

¡Lo tengo! Además de la respuesta seleccionada, también hice algo similar a esto en mi cadena:

htmlString = htmlString.Replace("&lt;","<")
htmlString = htmlString.Replace("&gt;",">")

Creo, sin embargo, que al final, podría terminar usando <pre> etiquetas para preservar todo.

La cadena " <br> " ya es HTML, por lo que puede simplemente Response.Write("<br>").

Pero te refieres a XSLT, así que imagino que hay alguna transformación. En ese caso, seguramente la transformación debería estar insertándola en el lugar correcto como un nodo. Una mejor pregunta probablemente obtendrá una mejor respuesta

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top