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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка при работе с xml 
:(
    Опции темы
_Dream
Дата 10.1.2007, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



всем привет. вот с толкнулся с ошибкой.. даже не понимаю откуда она берется...

это начало для записи в xml файл

Код

XmlTextWriter _xmlTextWriter = new XmlTextWriter(_fileName, null);
_xmlTextWriter.Formatting = Formatting.Indented;
_xmlTextWriter.WriteStartDocument();


так закрываем

Код

_xmlTextWriter.WriteEndDocument();
_xmlTextWriter.Flush();
_xmlTextWriter.Close();


между этим есть вызов метода другого класса  и куча всего. в результате мы бегаем и постепенно заполняем наш документ.
я обрабатываю пfраметры коммандной строки. 

этот код(ниже) я пишу ПЕРЕД форич'ем(которым и бегаю по коммнаднй строке)
Код

XmlTextWriter _xmlTextWriter = new XmlTextWriter(_fileName, null);
_xmlTextWriter.Formatting = Formatting.Indented;
_xmlTextWriter.WriteStartDocument();


соответственно закрытие после(вне цикла - форич)

так вот.. если параметр 1 то все нормльно. но если хотяб 2 то на 1м же обращении к xml в фориче -  а именно 

Код

XmlWriter _xmlWriter = xmlWriter;
_xmlWriter.WriteStartElement("solution");  // на этой строке
_xmlWriter.WriteAttributeString("path", _path.FullName.ToString());


появляется ошибка Token StartElement in state Epilog would result in an invalid XML document.
вот и хотелось бы узнать откуда smile
пасиб.


Это сообщение отредактировал(а) _Dream - 10.1.2007, 17:59
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
mr.DUDA
Дата 10.1.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Похоже, был вызван WriteEndElement(), что привело к ошибке при повторном вызове WriteStartElement.


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


Шустрый
*


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

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



мм.. а что так нельзя?
ну.. каждый элемент форича у нас и заключен в 
WriteStartElement  и WriteEndElement 
их же может быть много...
это ж не 
WriteStartDocument

--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
_Dream
Дата 11.1.2007, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ой там уж все сильно накручено.. по представленным данным мне не помочь.. уже разобрался..
спасибо за попытку.. если еще что появится спрошу  smile  пока все
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
_Dream
Дата 12.1.2007, 16:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



вот. появились новые данные..
использовав MemoryStream  смог немного подсмотреть что он там пишет в XmlWriter
и оказалось!!! что ошибка потому что он не закрывает тэги.. НО он не просто не закрывает их.. он их недописывает!
пример
Код

<?xml version="1.0"?>
<solution path="c:\Task1\ResourceLocaleChecker.sln">
  <project path="c:\Task1\ResourceLocaleChecker.csproj">
    <embeddedResource path="c:\Task1\Form1.resx">
      <data name="label1.Text" value="&#xD;&#xA;    label1&#xD;&#xA;  " />
      <data name="&gt;&gt;label1.Name" value="&#xD;&#xA;    label1&#xD;&#xA;  " />
      <data name="$this.Text" value="&#xD;&#xA;    Form1&#xD;&#xA;  " />
      <data name="&gt;&gt;label1.Parent" value="&#xD;&#xA;    $this&#xD;&#xA;  " />
      <data name="&gt;&gt;$this.Type" value="&#xD;&#xA;    System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&#xD;&#xA;  " />
      <data name="&gt;&gt;label1.ZOrder" value="&#xD;&#xA;    0&#xD;&#xA;  " />
      <data name="&gt;&gt;$this.Name" value="&#xD;&#xA;    Form1&#xD;&#xA;  " />
      <data name="&gt;&gt;label1.Type" value="&#xD;&#xA;    System.Windows.Forms.


понятно что на System.Windows.Forms. тэг не кончается. и потом он перестает туда писать.. не закрывает не embeddedResource и т д...

далее! эта дата(недописанная) по счету 8я после 
<embeddedResource path="c:\Task1\Form1.resx">
если я уменьшу даты до 7!!! то недописываться будет след эмбеддед ресурс - типа
<embeddedResource path="c:\Task1\Fo

вот
далее
если я уберу эти даты.. допустим до кол-ва 3! то в стриме вообще ничего - ""
как решить? =)
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
_Dream
Дата 12.1.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



разобрался
все гениальное просто. не описывал отдельно root
и когда было 2 параметра то эррор ессно а когда 1 то он и считался root
однако не закрываю пока тему.. - мож кто обьяснит чего он так странно обрезал тэги?
интересно просто. есть предположение что проблема была именно в memoryStream но не уверен...

ЗЫ ствил  у проекта несколько эмбеддед ресурсов так вот когда проходил раз то недописывал как я же говорил до конца его, но!!! когда проходил 2й но дописывал почему то 1й а 2й опять таки нет..

Это сообщение отредактировал(а) _Dream - 12.1.2007, 18:14
--------------------
Noone dies a virgin. Life screws us all...
PM MAIL ICQ GTalk   Вверх
mr.DUDA
Дата 13.1.2007, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Flush есть такой метод у XmlWriter-а   smile 


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

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


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

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


 




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


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

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