Pergunta

Eu estou tentando tirar a string "<BR>" em VB.NET e convertê-lo em HTML através de XSLT. Quando o HTML vem de fora, no entanto, parece que isso:

&lt;BR&gt;

Eu só posso assumir que vai em frente e tenta torná-lo. Existe alguma maneira eu posso converter os &lt;/&gt; de volta para os suportes assim que eu conseguir a quebra de linha Eu estou tentando para?

Foi útil?

Solução

Verifique a XSLT tem:

<xsl:output method="html"/>

edit: explicação de comentários

Por saídas XSLT padrão como XML (1) o que significa que vai escapar quaisquer caracteres significativos. Você pode substituir esse em casos específicos com a disable-output-escaping="yes" atributo (intro aqui ), mas muito mais poderoso é alterar a saída para o valor explícito de HTML que confia mesmo benefício a nível mundial, como o seguinte:

  • Para script e estilo elementos, substitua todos os caracteres de escape (tais como & e>) com seus valores reais (& E>, respectivamente).
  • Para atributos, substituir todas as ocorrências de> com>.
  • elementos vazios escrever tais como <br>, <img> e <input> sem fechando tags ou barras.
  • atributos escrevem que transmitem informações por sua presença como oposição ao seu valor, tal como verificados e selecionados, em minimizado formulário.

a partir de uma sólida IBM artigo cobertura o assunto, a cobertura mais recente da stylusstudio aqui

Se a saída HTML é o que você deseja a saída HTML é o que você deve especificar.

(1) Não há realmente caso canto onde os padrões de saída para HTML, mas eu não acho que é universal e é uma espécie de obtuso para depender disso.

Outras dicas

Tente wraping-lo com <xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>

Não sei sobre XSLT, mas ..

Uma solução pode estar usando HttpUtility.HtmlDecode partir System.Web namespace.

using System;
using System.Web;

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

...

Entendi! No topo da resposta escolhida, eu também fiz algo semelhante a isto na minha string:

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

Creio, porém, que, no final, eu pode acabar usando tags <pre> para preservar tudo.

A cadeia "<br>" já HTML é assim que você pode apenas Response.Write("<br>").

Mas você meantion XSLT então eu imagino que alguns transformar acontecendo. Nesse caso, certamente a transformação deve ser de inseri-lo no lugar correto como um nó. A melhor pergunta provavelmente irá obter uma resposta melhor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top