Есть документ следующего вида:
Стоит задача записывать в определенную категорию пару key-value, и также читать из определенной категории такую пару. Я запутался в бесконечных XmlDocument, XPathNavigator и прочем, помогите пожалуйста разобраться.Язык С#.
Ответ
Если не хотите мучиться со всеми особенностями XML-DOM, то попробуйте использовать LiNQtoXML. Пространство имен System.Xml.Linq, Основной рабочий класс - XElement
Загрузка исходного Xml:
var myDoc = XElement.Load("myFile.xml");
Также можно использовать статический метод XElement.Parse(string), если в качестве источника используется строка.
Ищем нужный элемент:
var element = myDoc.Descendants("elementName").FirstOrDefault();
Читаем и пишем значение элемента:
var elValue = element?.Value;
element.Value = "newValue";//элемент должен существовать
Читаем и пишем атрибут:
var attrValue = element?.Attribute("attrName")?.Value;
element.Attribute("attrName").Value = "newAttrValue";
Добавим вложенный элемент c текстовым значением и атрибутом
element.Add(new XElement("subElement", "value", new XAttribute("attrName","AttrValue"));
Сохраним результат на диск
myDoc.Save("fileName")
Как видите все довольно прозрачно и понятно. XMLtoLiNQ полностью поддерживает классическую XML-DOM, но делает это изящнее чем более старый подход, реализованный в XmlDocument и сопутствующих классах.
Документация по ссылкам ниже содержит примеры в достаточном количестве чтобы разобраться и ссылки на описание сопутствующих классов.
Класс XDocument
Класс XElement
Комментариев нет:
Отправить комментарий