Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227

Добавление в xml

04.12.2018, 23:54. Показов 3502. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, у меня xml выглядит так:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="Windows-1251"?> 
<Test>
     <Problem>
    <id>1</id>
          <Question>Первый шаг при добавлении элемента в список?</Question>
          <OptionA>Выделить память под новый элемент</OptionA>
          <OptionB>Освободить память из под старого первого элемента</OptionB>
          <OptionC>Добавить элемент</OptionC>
          <OptionD>Затрудняюсь ответить</OptionD>
          <Answer>OptionA</Answer>
     </Problem>
     <Problem>
    <id>2</id>
          <Question>Может ли список содержать 4*294*967*296 элементов типа Int?</Question>
          <OptionA>Нет</OptionA>
          <OptionB>Да</OptionB>
          <OptionC>Да, но только при размере элемента 1 байт</OptionC>
          <OptionD>Да, но только при компиляции 64-разрядной версии программы</OptionD>
          <Answer>OptionD</Answer>
     </Problem>
</Test>
Я хочу дополнить вопросы. код с# при добавление:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
  private void button11_Click(object sender, EventArgs e)
        {
            var doc = new XmlDocument();
            doc.Load("ques.xml");
            XmlNode root = doc.DocumentElement;
 
            XmlElement ip = doc.CreateElement("ip");          
            ip.InnerText = "13";
            root.AppendChild(ip);
 
            string QuesText = richTextBox3.Text;
            XmlElement Question = doc.CreateElement("Question");
            Question.InnerText = QuesText;
            root.AppendChild(Question);
 
            string OA = textBox8.Text;
            XmlElement OptionA = doc.CreateElement("OptionA");
            OptionA.InnerText = OA;            
            root.AppendChild(OptionA);
 
            string OB = textBox9.Text;
            XmlElement OptionB = doc.CreateElement("OptionB");
            OptionB.InnerText = OB;
            root.AppendChild(OptionB);
 
            string OC = textBox10.Text;
            XmlElement OptionC = doc.CreateElement("OptionC");
            OptionC.InnerText = OC;
            root.AppendChild(OptionC);
 
            string OD = textBox11.Text;
            XmlElement OptionD = doc.CreateElement("OptionD");
            OptionD.InnerText = OD;
            root.AppendChild(OptionD);
 
            ans = "";
            if (comboBox1.SelectedIndex == 0)
            {
                ans = "OptionA";
            }else if (comboBox1.SelectedIndex == 1)
            {
                ans = "OptionB";
            }else if (comboBox1.SelectedIndex == 2)
            {
                ans = "OptionC";
            }else if (comboBox1.SelectedIndex == 3)
            {
                ans = "OptionD";
            }else
            {
                MessageBox.Show("Выберите ответ");
            }
            XmlElement Answer = doc.CreateElement("Answer");
            Answer.InnerText = ans;
            root.AppendChild(Answer);
 
            doc.Save("ques.xml");
            MessageBox.Show("Вопрос добавлен");
        }
у меня с таким кодом добавляется:
XML
1
2
3
4
5
6
7
<ip>13</ip>
  <Question>Работает с добавлением?</Question>
  <OptionA>Да</OptionA>
  <OptionB>Нет</OptionB>
  <OptionC>Не знаю</OptionC>
  <OptionD>Сейчас посмотрю</OptionD>
  <Answer>OptionA</Answer>
а надо
XML
1
2
3
4
5
6
7
8
9
<Problem>
  <ip>13</ip>
  <Question>Работает с добавлением?</Question>
  <OptionA>Да</OptionA>
  <OptionB>Нет</OptionB>
  <OptionC>Не знаю</OptionC>
  <OptionD>Сейчас посмотрю</OptionD>
  <Answer>OptionA</Answer>
  </Problem>
я не знаю как написать код для <Problem>, помогите пожалуйста, я учусь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2018, 23:54
Ответы с готовыми решениями:

Добавление в xml
В первый раз сталкиваюсь с xml, как правильно организовать следующие (если не сложно помочь кодом): В xml должен осуществляться поиск,...

Добавление данных в XML
Товарищи студенты, а так же их родители. С новым годом! У меня есть XML файл: &lt;?xml version=&quot;1.0&quot;...

XML добавление и редактирование
Доброго времени. У меня возникла проблема. Сегодня впервые решил познакомиться с XML и начать с ним работать. По учебнику и интернету я...

7
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 00:13
Лучший ответ Сообщение было отмечено wymaxep как решение

Решение

wymaxep,
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
            var doc = new XmlDocument();
            doc.Load("ques.xml");
            XmlNode root = doc.DocumentElement;
 
            XmlElement grp = doc.CreateElement("Problem"); //Добавляем элемент grp
            root.AppendChild(grp); //В корневой добавляем grp
 
            XmlElement ip = doc.CreateElement("ip");
            ip.InnerText = "13";
            grp.AppendChild(ip); //В grp добавляем остальные
 
            string QuesText = richTextBox3.Text;
            XmlElement Question = doc.CreateElement("Question");
            Question.InnerText = QuesText;
            grp.AppendChild(Question);
 
            string OA = textBox8.Text;
            XmlElement OptionA = doc.CreateElement("OptionA");
            OptionA.InnerText = OA;
            grp.AppendChild(OptionA);
 
//И т.д.
1
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227
05.12.2018, 00:29  [ТС]
PoPsa85, аа вот как. хитро) спасибо)
и теперь другой вопрос. можно ли сделать код так, чтобы ip находил последние цифры (напр, у меня 10 вопросов. ip=10) и программа сама создаст цифру для продолжения(ip=11). есть такой код? или где можно об этом почитать?)
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 00:47
wymaxep, ip=10 это где ? В файле куда вы это добавляете ? Тогда наверное количество элементов <Problem> у вас и будет равно десяти, не так ли ?
0
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227
05.12.2018, 00:56  [ТС]
PoPsa85, да в файле: <id>1</id>. и да так вы правильно поняли.
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 00:59
Лучший ответ Сообщение было отмечено wymaxep как решение

Решение

wymaxep,
C#
1
2
3
            var doc = new XmlDocument();
            doc.Load("ques.xml");
            int problemCount = doc.GetElementsByTagName("Problem").Count; //Количество проблем, соответственно следующий на единицу больше
1
5 / 3 / 2
Регистрация: 14.03.2018
Сообщений: 227
05.12.2018, 01:09  [ТС]
PoPsa85, Восхитительно)) спасибо огромное))
0
 Аватар для PoPsa85
814 / 561 / 240
Регистрация: 01.07.2018
Сообщений: 1,818
05.12.2018, 01:10
wymaxep, На здоровье.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2018, 01:10
Помогаю со студенческими работами здесь

Добавление, а не перезапись XML
Есть авто выгрузка...формирует xml, по 200 объяв в сутки... нужно чтоб в этот файл дописывалось в сутки по 200 объяв 3 раза, и в итоге...

Добавление узла в xml
При добавлении нового узла все содержимое файла затирается. XDocument xDoc1=new XDocument(); xDoc1.Add( ...

XML. Добавление в файл
Есть XML-файл со структурой типа &lt;root&gt; &lt;element1&gt; &lt;/element1&gt; &lt;element1&gt; &lt;/element1&gt; .... ...

Добавление данных в XML
Здравствуйте. Есть такой XML-документ: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt; - &lt;UICustomizationSet...

Добавление в XML записи
&lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot; ?&gt; &lt;ListOfBooks&gt; &lt;Book&gt; &lt;Title FontSize =&quot;8&quot; Color =&quot;Green&quot;&gt;Title-1&lt;/Title&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru