Linq to XML - Попытка напечатать символ бесконечности - PullRequest
2 голосов
/ 27 августа 2009

Я использую Linq to XML для некоторых файлов вывода HTML. Мне нужно разместить символ бесконечности (∞) в коде на выходе в некоторых ячейках таблицы. Я создаю XElement, как этот

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

var document = new XDocument (таблица); document.Save (MyFile);

и при сохранении файла я не вижу ∞, вместо этого вижу &#8734. Как я могу предотвратить этот перевод?

1 Ответ

5 голосов
/ 27 августа 2009

LINQ to XML делает правильные вещи - он предполагает, что когда вы задаете ему строку в качестве контента, это контент, который вы хотите увидеть. Он спасается для тебя. Вы действительно не хотите убегать каждый <, > и & самостоятельно.

Что вам нужно сделать, это дать ему фактический контент, который вы хотите - который является символом бесконечности. Итак, попробуйте это:

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

Это может в конечном итоге оказаться не как сущность в выходном файле, а просто закодированный символ - но это должно быть в порядке, если у вас нет проблем с кодированием.

РЕДАКТИРОВАТЬ: Я только что проверил, и символ бесконечности на самом деле U + 221E, поэтому вы хотите вместо "\ u221e". На самом деле я не могу понять, что такое U + 8734 ... в настоящий момент он не может быть определен в Юникоде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...