Войти

Показать полную графическую версию : [решено] Замена спецсимволов в xml в C#


Gamer
13-04-2011, 11:22
Всем прива.

Есть некая прога на C#, которая берет данные из некой БД и пихает все это дело в .xml . В данных часто попадаются различные спецсимволы, которые надо менять на соответствующие коды при выгрузке в .xml. Но. Программа меняет то, что не надо. Например, в исходных данных мы имеем:

Тест&Тест

Это добро нам надо обработать. Программа это делает методом(?) Replace:

strText.Replace("&", "& amp;");

В .xml мы ожидаем увидеть это:

Тест& amp;Тест

А получаем вот это:

Тестamp;amp;Тест

Глядя на эту печальную картину, вырисовывается предположение, что где-то в программе есть глобальная настройка или что-нибудь типа этого, что регламентирует замену символов и превалирует над дальнейшим кодом. Загвоздка в том, что я понятия не имею, что это. Хотя гугл кивает в сторону system.xml .

Буду благодарен, если кто подскажет, как можно убрать эту автозамену.

Beyound
13-04-2011, 18:09
не хота лезть в описание этого метода, но что Вам мешает скажем в тексте циклом искать этот & и когда его встретишь сразу после него дописывать " amp;" т.е. грубо вы же всеравно копируете текст, почему бы его при это не анализировать посимвольно?

Gamer
15-04-2011, 09:28
Хм. Если есть глобальное правило, не получится ли, как с Replace?

Beyound
15-04-2011, 16:27
ну смотря как ты напишешь. все в твоих руках - не можешь понять как работает функция - пишешь свою функцию

Gamer
15-04-2011, 17:05
Совершенно верно. Понять, как работает Replace, а, точнее, почему выгружает неправильно, я так и не смог.

Зато обнаружил такую замечательную штуку как WriteRaw, подправил программку и обрел счастье.

Собственно, спасибо, проблему можно считать решенной. :)ъ

UPD: Поправка. Дело не Replace, а в WriteElementString, который, видимо, автоматом заменяет спецсимволы в данных перед выводом.




© OSzone.net 2001-2012