Поиск последнего дочернего элемента и добавление следующего в xml-документе - C#

Узнай цену своей работы

Формулировка задачи:

По наработкам: для всех элементов item вставить schema, если последний из дочерних элементов item-a = title. Xml вида:
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!-- This is a SCORM 1.2 manifest file, created 9/1/2014 1:52:58 PM by semina using CourseLab 140211 -->
  3. <manifest xmlns="http://www.imsproject.org/xsd/imscp_rootv1p1p2" xmlns:adlcp="http://www.adlnet.org/xsd/adlcp_rootv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" [url]http://www.imsproject.org/xsd/imscp_rootv1p1p2[/url] imscp_rootv1p1p2.xsd [url]http://www.adlnet.org/xsd/adlcp_rootv1p2[/url] adlcp_rootv1p2.xsd" identifier="MANIFEST-5D060C55_4EC0_4E49_8D2F_F5C934FFEDAD" version="1.0">
  4. <title>Технолог подсистемы САДД БР. Работа с модулем «Справочники»</title>
  5. <item identifier="im_1" identifierref="RES1" parameters="?width=1152&amp;height=920">
  6. <title>Информационный материал</title>
  7. </item>
  8. <item identifier="im_1" identifierref="RES1" parameters="?width=1152&amp;height=920">
  9. <title>Информационный материал</title>
  10. </item>
  11. </manifest>
По наработкам:
Листинг программы
  1. XmlDocument data = new XmlDocument();
  2. string path = AppDomain.CurrentDomain.BaseDirectory.Replace(@"\bin\Debug", @"");
  3. path = path + "imsmanifest.xml";
  4. XElement d2 = XElement.Load(path);
  5. data.Load(path);
  6. XmlNode schema = data.CreateElement("schema");
  7. schema.InnerText = "ADL SCORM";
  8. IEnumerable<XElement> itemList = d2.Elements("item");
  9. foreach (XElement el in itemList) {
  10. var childList = el.Elements();
  11. if (childList.Last().Name == "title") {
  12. el.Add(schema);
  13. }
  14. }
  15. data.Save(path);
Уже нет никаких вариантов, где ошибка, выглядит логично. Но со стороны видней.

Решение задачи: «Поиск последнего дочернего элемента и добавление следующего в xml-документе»

textual
Листинг программы
  1. var xml = XDocument.Parse(text);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы