Экранирующие символы Unicode не читаются XmlReader - PullRequest
1 голос
/ 14 мая 2010

У меня есть XML-документ, который я импортирую в XmlReader, который имеет некоторое форматирование Юникода, которое мне нужно сохранить. Я сохраняю пробел, но он удаляет закодированный # x2028, который, как я полагаю, должен быть выражен как разрыв строки.

Вот мой код:

var settings = new XmlReaderSettings
                   {
                       ProhibitDtd = false,
                       XmlResolver = null,
                       IgnoreWhitespace = false
                   };

var reader = XmlReader.Create(new StreamReader(fu.PostedFile.InputStream), settings);
var document = new XmlDocument {PreserveWhitespace = true};
document.Load(reader);
return document;

Пример XML:

<td valign="top" align="center">Camels and camel &#x2028;resting place</td>

Как мне добраться до этих символов, чтобы я мог отображать теги br?

Ответы [ 2 ]

0 голосов
/ 14 мая 2010

После импорта кода в ридер я смог найти и заменить этот символ:

Regex.Replace(s, "\u2028", "<br/>");
0 голосов
/ 14 мая 2010

Ваш вопрос неясен: ожидаете ли вы, что XmlReader переведет &#x2028; в тег HTML <br>? Этого не произойдет.

Или вы исследуете фактическое содержание символов элемента <td> (в пределах кода, а не напечатано / отображено) и видите «место отдыха верблюда»? Если да, пожалуйста, покажите код, который вы используете для проверки этого, потому что это будет довольно серьезная ошибка.

Или что-то еще?

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