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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дозапись в Xml, Не записывает после цифровой записи. 
:(
    Опции темы
Сарт
Дата 17.3.2007, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

 struct fioname
        {
            private string fio;
            private string mobile;
            private string home;
            public string FIOSave
            {
                get 
                {
                    return fio;
                }
                set 
                {
                    fio = value;
                }
            }
            public string MobileSave
            {
                get
                {
                    
                  
                    return mobile;
                }
                set
                {
                    //MainForm o = new MainForm();
                    //if (o.MobileBox.Text == "")
                    //{
                     //   mobile = "None";
                   // }
                   // else
                    mobile = value;
                }
            }
            public string HomeSave
            {
                get
                {
                    
                 
                    return home;
                }
                set
                {
                  //  MainForm o = new MainForm();
                   // if (o.HomeBox.Text == "")
                   // {
                    //    home = "None";
                   // }
                   // else
                  home = value;
                }
            }
        }


есть вот такая структурка.
обработка кнопки :
Код

private void SaveButt_Click(object sender, EventArgs e)
        {
            
            
            if (!File.Exists(Path))
            {
                try
                {
                    XmlDocument document = new XmlDocument();
                    XmlWriter xmlwriter = XmlWriter.Create("Phonebase.xml");
                    document.AppendChild(document.CreateXmlDeclaration("1.0", null, null));
                    XmlNode rootNode = document.AppendChild(document.CreateElement("base"));
                    XmlNode zapisNode = rootNode.AppendChild(document.CreateElement("start"));
                    document.Save(xmlwriter);
                    MessageBox.Show("New base created.Please press 'Save' for saving current record.");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Couldn't create Phonebase.xml. Try another path.");
                    MessageBox.Show(ex.Message);
                }
            }
               
            else
                this.Saving();                    


и метод Saving:
Код

private void Saving()
        {
            fioname obj = new fioname();
            obj.FIOSave = FIOBox.Text;
            obj.HomeSave = HomeBox.Text;
            obj.MobileSave = MobileBox.Text;
            
            XmlDocument documentSave = new XmlDocument();
            try
            {
               
                    documentSave.Load(Path);
                  // XmlReader readxml = XmlReader.Create(Path);
                  // readxml.ReadToFollowing("start");
                  // readxml.Skip();
                  // MessageBox.Show(readxml.ToString());
                    XmlElement elementroot = documentSave.DocumentElement;
                    XmlNode fioNode = elementroot.AppendChild(documentSave.CreateElement(obj.FIOSave));
                    XmlNode mobileNode = elementroot.AppendChild(documentSave.CreateElement(obj.MobileSave));
                    XmlNode homeNode = elementroot.AppendChild(documentSave.CreateElement(obj.HomeSave));
                    documentSave.Save(Path);
                    MessageBox.Show(documentSave.OuterXml);

              }
            catch (Exception e)
            {
                MessageBox.Show("Field 'FIO' cannot be null. Please, write FIO.");
                MessageBox.Show(e.Message);

            }


Теперь сама проблема:
При вводе исключительно текста во все 3 поля , все нормально сохраняется.
Код

<?xml version="1.0" encoding="utf-8"?>
<base>
  <start />
  <sart />
  <sart />
  <sart />
  <papa />
  <spapap />
  <spapa />
 </base>


Но стоит куда нить ввести цифры, то она 1 раз запишет
Код

<?xml version="1.0" encoding="utf-8"?>
<base>
  <start />
  <sart />
  <sart />
  <sart />
  <papa />
  <spapap />
  <spapa />
  <papa />
  <1111 />
  <spapa />
</base>



Но при попытке добавить еще 1 запись вылетает странная ошибка:
"Name cannot begin with the 1 character, hexadecimal value 0X31. Line 11, position 4 "


Внимание вопрос- а какого черта то?????
П.С.
По доброй традиции данный вопрос идет на +1 к репутации=)
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
mr.DUDA
Дата 17.3.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



С кодировкой проблемы, видать...


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


Бывалый
*


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

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



Неа=) поплакался Void-y он сказал "Я точно не помню, но по-моему в валидном XML теги не могут начинаться с цифры." и походу он прав... сча пытаюсь сделать через аттрибуты, потом кину код и закрою тему=)
--------------------
[color=purple][/color]Died.Of course, System.StackOverflow 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




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


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

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