Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Преобразование в строку как XML, Так, как это делает XMLWriter, например. 
:(
    Опции темы
amarenkov
Дата 2.7.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Добрый день.

Подскажите, кто знает, как мне преобразовать объект в строку, так же как это делает XMLWriter, не создавая его. Когда мы при помощи XMLWriter записываем double - он записывается через точку, а когда пишем string, то там все символы кавычек, угловых скобок и т.п. преобразуются в спец. строки, типа < и т.д. 

У меня есть шаблон: tmpl = "<cp name=\"{0}\" />". Если я использую Format(tmpl, "<имя>"), то, конечно же, строка вставляется в нужно место безо всяких преобразований. А мне необходимо ее преобразовать в xml-корректную строку.

Варианты решения типа: "создай XMLWriter, потом WriteStartElment, потом пишешь атрибут..." не предлагать smile.

Заранее спасибо smile.
PM MAIL ICQ   Вверх
altarvic
Дата 2.7.2008, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: 1
Всего: 1



Предлагаю другой вариант: "создай XMLSerializer, потом метод Serialize..." 
PM MAIL   Вверх
Bogdan1024
Дата 2.7.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Может быть System.Web.HttpServerUtility поможет? У него есть HtmlEncode/HtmlDecode...


--------------------
user posted image
PM MAIL   Вверх
mihryak
Дата 2.7.2008, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 731
Регистрация: 28.4.2007
Где: С-Пб

Репутация: 19
Всего: 36



Цитата(Bogdan1024 @  2.7.2008,  16:21 Найти цитируемый пост)
HtmlEncode

он вроде как слишком много энкодит
явовские реализации XmlEncode заменяют только 
< ' & " >
на соответственно
&lt; &apos; &amp; &quot; &gt;

погугли на тему XmlEncode


Это сообщение отредактировал(а) mihryak - 2.7.2008, 15:45
PM MAIL ICQ   Вверх
PashaPash
Дата 2.7.2008, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 13
Всего: 49



mihryak, есть отличная .net-овская реализация XmlEncode. В классе XmlWriter. Но топикастера она не устраивает по необъяснимым причинам.

Это сообщение отредактировал(а) PashaPash - 2.7.2008, 15:56


--------------------
PM MAIL WWW   Вверх
altarvic
Дата 3.7.2008, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: 1
Всего: 1



amarenkov для строк используй XmlConvert.EncodeName
PM MAIL   Вверх
amarenkov
Дата 3.7.2008, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 21.2.2008
Где: Воронеж

Репутация: нет
Всего: нет



Цитата(PashaPash @  2.7.2008,  15:55 Найти цитируемый пост)
... топикастера она не устраивает ...


Меня не устраивает не сам этот объект, а то, что надо надо писать много функций - открыть тег, записать атрибут, закрыть тег. Иначе он ругается (по-моему). А мне бы какая-нибудь функция подошла бы. Желательно в статическом классе smile.

altarvic, спасибо, попробую сейчас.

Добавлено через 12 минут и 28 секунд
XmlConvert по-чуть не подходит. Все-таки имя и содержимое тега или атрибута - несколько разные вещи, и разным правилам подчиняются. Плюс к этому, преобразовать тип в строку не может, хотя и может обратно.

Конечно, если поставить ConformanceLevel.Fragment, то XmlWriter не ругается. Но необходимость создавать XmlWriterSettings и XmlWriter остается. Вообщем, если других вариантов не будет, то создам статический член XmlWriter в своем классе и буду его инициализировать в статическом конструкторе, а потом использовать smile.
PM MAIL ICQ   Вверх
altarvic
Дата 3.7.2008, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 2.3.2007

Репутация: 1
Всего: 1



Тогда только так поскольку XmlWriter для этого использует внутренний класс XmlTextEncoder :(

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0864 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.