Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Записать XML-файл

6.0K
18 июля 2011 года
Ner
31 / / 23.11.2010
Есть XML-файл:

[HTML]<?xml version="1.0" encoding="windows-1251"?>
<Q-144>
<Соединение1>
<Елемент1>ааа</Елемент1>
<Отношение>ббб</Отношение>
<Елемент2 Число="10">ввв</Елемент2>
</Соединение1>
</Q-144>[/HTML]
Как добавить к нему тег <Соединение2>, т.е. должно получиться:

[HTML]<?xml version="1.0" encoding="windows-1251"?>
<Q-144>
<Соединение1>
<Елемент1>ааа</Елемент1>
<Отношение>ббб</Отношение>
<Елемент2 Число="10">ввв</Елемент2>
</Соединение1>
<Соединение2>
<Елемент1>ггг</Елемент1>
<Отношение Число="50">ддд</Отношение>
<Елемент2>еее</Елемент2>
</Соединение2>
</Q-144>[/HTML]

У меня перезатирается <Соединение1>… на его месте <Соединение2>.

Спасибо.

P.S. Работаю в Visual C# 2008.
6.0K
02 августа 2011 года
Ner
31 / / 23.11.2010
Сбрасываю код (ясно что здесь, что-то не так):

Код:
private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
{
        string[] spisok_num_soed = { "Соединение1", "Соединение2",
        "Соединение3", "Соединение4", "Соединение5",
        "Соединение6", "Соединение", "Соединение8",
        "Соединение9", "Соединение10", "Соединение11", "Соединение12"};
     
        int idx = -1;          
   
        XmlDocument doc = new XmlDocument();
        doc.Load("ОЭС.xml");
        XmlNode root = doc.DocumentElement;

        XmlTextWriter xw = new XmlTextWriter("ОЭС.xml", Encoding.GetEncoding(1251));
        xw.WriteStartDocument();  //заголовок XML
        xw.Formatting = Formatting.Indented;
        xw.IndentChar = '\t';
        xw.Indentation = 2;
        xw.WriteStartElement("Q-144");
               
        foreach (XmlNode childnode in root.ChildNodes)
        {
             idx = Array.BinarySearch(spisok_num_soed, childnode.Name);
        }
        XmlElement soed = doc.CreateElement(spisok_num_soed[++idx]);
        root.AppendChild(soed);

        xw.WriteStartElement("Елемент1");
        xw.WriteString(comboBox1.Text);
        xw.WriteEndElement();

        xw.WriteStartElement("Отношение");
        xw.WriteString(comboBox2.Text);
        xw.WriteEndElement();

        xw.WriteStartElement("Елемент2");
        xw.WriteStartAttribute("Число", null); //атрибут
        xw.WriteString("10");
        xw.WriteEndAttribute();
        xw.WriteString(comboBox3.Text);
        xw.WriteEndElement();

    xw.WriteEndElement();

    xw.WriteEndDocument();
    xw.Close();
}


Пожалуйста, подскажите что не так. Может сбросите ненавязчивый исходничек или псевдокод.

Спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог