/// <summary> /// метод редактирует данные в задаче /// </summary> /// <param name="dataId">id задачи</param> /// <param name="newDatas">новые данные</param> /// <param name="number">номер атрибута для замены</param> public void EditTaskData(string dataId, string newDatas, EnumEditTask number) { //ищем узел по тегу <tasks> такой у нас должен быть 1 в документе XmlNodeList xmlNodeList = Document.GetElementsByTagName(tasksTag); //перебираем элементы foreach (XmlNode node in xmlNodeList) { //приводим найденный узел к элементу XmlElement child = node as XmlElement; //ищим в узлы по тэгу <task> XmlNodeList list = child.GetElementsByTagName(taskTag); //перебираем узлы foreach (XmlNode childnode in list) { //приводим узел у элементу XmlElement task = childnode as XmlElement; //если у задачи соответствующий id if (task.Attributes[0].Value.CompareTo(dataId) == 0) { task.ChildNodes[(int)number - 1].Attributes[0].Value = newDatas; break; } } } Document.Save(pathFileXml); }
/// <summary> /// удаление задач по id категории /// </summary> /// <param name="id">id категории</param> private void DeleteTaskByCategoryId(string id, EnumEditTask editTask) { //ищем узел по тегу <tasks> такой у нас должен быть 1 в документе XmlNodeList xmlNodeList = Document.GetElementsByTagName(tasksTag); //перебираем элементы foreach (XmlNode node in xmlNodeList) { //приводим найденный узел к элементу XmlElement child = node as XmlElement; //ищим в узлы по тэгу <task> XmlNodeList list = child.GetElementsByTagName(taskTag); if (list != null) { List <XmlElement> listDelete = new List <XmlElement>(); //перебираем узлы foreach (XmlNode childnode in list) { //приводим узел у элементу XmlElement task = childnode as XmlElement; if ((task.ChildNodes[(int)editTask - 1] as XmlElement).Attributes[0].Value.CompareTo(id) == 0)//если у категории задачи искомый id { //node.RemoveChild(task); listDelete.Add(task); } } if (listDelete.Count > 0) { foreach (XmlElement element in listDelete) { node.RemoveChild(element); } } } } }