Linq para XML - Tentando imprimir o símbolo do Infinito

votos
2

Eu estou usando LINQ to XML para alguns arquivos de saída HTML. Eu preciso colocar o símbolo do infinito ( ∞) no código de saída em algumas células da tabela. Estou criando um XElement como este

var table = new XElement(table,
            new XElement(tr,
                new XElement(td, ∞)
            )
        );

var documento = new XDocument (tabela); document.Save (myFile);

e quando o arquivo é salvo eu não estou vendo ∞, em vez eu vejo &#8734. Como posso evitar que esta tradução aconteça?

Publicado 27/08/2009 em 02:02
fonte usuário
Em outras línguas...                            


1 respostas

votos
5

LINQ to XML está fazendo a coisa certa - é assumindo que quando você dá uma string como conteúdo, que é o conteúdo que você quer ver. Ele está fazendo escapar para você. Você realmente não quero ter que escapar cada <, >e &a si mesmo.

O que você precisa fazer é dar-lhe o conteúdo real que você quer - que é o símbolo do infinito. Então tente o seguinte:

var table = new XElement("table",
            new XElement("tr",
                new XElement("td", "\u8734")
            )
        );

Isso pode muito bem acabar não saindo como uma entidade no arquivo de saída, apenas o caráter codificado - mas isso deve ficar bem, desde que você não tem problemas de codificação.

EDIT: Eu verifiquei apenas, e o símbolo do infinito é realmente U + 221E, assim que você quer "\ u221e" em vez. Eu não posso realmente ver o que U + 8734 é para ser ... não pode ser definido em Unicode no momento.

Respondeu 27/08/2009 em 03:07
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more