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();
}
Записать 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.
Код:
Пожалуйста, подскажите что не так. Может сбросите ненавязчивый исходничек или псевдокод.
Спасибо.