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

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

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

По наработкам: для всех элементов item вставить schema, если последний из дочерних элементов item-a = title. Xml вида:
<?xml version="1.0" encoding="utf-8"?>
    <!-- This is a SCORM 1.2 manifest file, created 9/1/2014 1:52:58 PM by semina using CourseLab 140211 -->
    <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">
      <title>Технолог подсистемы САДД БР. Работа с модулем «Справочники»</title>
      <item identifier="im_1" identifierref="RES1" parameters="?width=1152&amp;height=920">
        <title>Информационный материал</title>
      </item>
      <item identifier="im_1" identifierref="RES1" parameters="?width=1152&amp;height=920">
        <title>Информационный материал</title>
      </item>
    </manifest>
По наработкам:
XmlDocument data = new XmlDocument();
        string path = AppDomain.CurrentDomain.BaseDirectory.Replace(@"\bin\Debug", @"");
        path = path + "imsmanifest.xml";
 
        XElement d2 = XElement.Load(path);
 
        data.Load(path);
        XmlNode schema = data.CreateElement("schema");
        schema.InnerText = "ADL SCORM";
 
        IEnumerable<XElement> itemList = d2.Elements("item");
 
        foreach (XElement el in itemList) {
          var childList = el.Elements();
          if (childList.Last().Name == "title") {
             el.Add(schema);
          }
        }
        data.Save(path);
Уже нет никаких вариантов, где ошибка, выглядит логично. Но со стороны видней.

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

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

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


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

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

8   голосов , оценка 4 из 5
Похожие ответы