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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XmlWrite не признает пробелы! а они нужны... 
:(
    Опции темы
fromrus
Дата 12.11.2008, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Првет!

не могу с помщью указанного выше класса записать строку с пробелами:

Код

XmlWriterSettings setting = new XmlWriterSettings();            setting.Indent = true;  
          setting.ConformanceLevel = ConformanceLevel.Fragment;            XmlWriter writer = XmlWriter.Create(path,setting);     
       writer.WriteStartElement("Отчет"); 
    writer.WriteAttributeString("Space Space");//тут то и выдаст exeption,что мол пробел недопускается...    
       writer.WriteEndElement();            

Как быть?Помимо пробелов он не мжет прочитать символы типа "\"или "|",также в имени корневого элемента запрещены цифры-а мне как раз это и нужно...

Добавлено через 1 минуту и 25 секунд
разобрался,нужно было использовать XMLConvert.EncodeName(),но при этом возникла другая проблема,шестнадцатиричный код пробела также добавляется в атрибут:


 xml.WriteAttributeString(XmlConvert.EncodeName("data lala"), "123");           
В результате будет 

<..data_x0020_lala="123" /> 

Читабельность портится в разы.Что в этом случае делать?
           


PM MAIL ICQ   Вверх
mr.DUDA
Дата 13.11.2008, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

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



Разве в именах атрибутов и тегов можно использовать спецсимволы и пробелы? Имхо нельзя.


--------------------
user posted image
PM MAIL WWW   Вверх
diadiavova
Дата 13.11.2008, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

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



В XML как и в любом языке есть определённые правила именования. Правила эти подроно описаны в спецификации(да и куча литературы на эту тему есть). В частности мена элементов и атрибутов должны удовлетворять следующим требованиям(пишу по памяти - могу ошибиться)
1. Состоять имя может из алфавитных символов, цифр, тире, точек и знаков подчёркивания.
2. Начинаться имя может только алфавитным символом или знаком подчёркивания. Так же в начале имени запрещено сочетание xml в любом регистре(зарезервировано)
3. Длина имени не дролжна превышать 1023 символа

Это примерно, точно уже не помню(если что - меня поправят), но проверить корректность имени можно при помощи статической функции System.Xml.XmlReader.IsName, ей передаётся строка, а она возвращает булево значение, показывающее, является ли эта строка допустимым именем.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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