Поиск по атрибуту тега XML - C#

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

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

Здравствуйте, нужна ваша помощь. У меня есть сохраненный XML документ с такими вот элементами
Листинг программы
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <base>
  3. <Animals0 name="Окунь" cklass="0" areal="Минская" chsl="3" />
  4. <Animals1 name="Зубр" cklass="1" areal="Витебская" chsl="7" />
  5. <Animals2 name="Лиса" cklass="2" areal="Могилевская" chsl="19" />
  6. </base>
Мне нужно совершить поиск по одному критерию по Классу, Ареалу или Названию и получить ВСЕ значения узла в котором он нашел атрибут . Например, есть форма с поиском, я вписываю критерий поиска("По Ареалу") и само значение("Минская"). И есть TextBox в который я должен поместить результат поиска. Есть у меня наработка, этот код создает новый документ и помещает в него только элемент Animals0 и все его атрибуты, а мне нужно наоборот, чтобы он по атрибуту выводил весь узел..
Листинг программы
  1. private void button4_Click_1(object sender, EventArgs e)
  2. {
  3. XmlDocument doc = new XmlDocument();
  4. doc.Load("C:\\Animals.xml");
  5. XmlNode root_node = doc.DocumentElement;
  6. XmlNode node = root_node.SelectSingleNode("//Animals0");
  7. File.WriteAllText("C:\\NewAnimals.xml", node.OuterXml);
  8. }
Вроде бы ясно разъяснил, помогите уж чем сможете..

Решение задачи: «Поиск по атрибуту тега XML»

textual
Листинг программы
  1. using System;
  2. using System.Net;
  3. using System.Xml;
  4.  
  5. namespace Ghost
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string areal = "Минская";
  12.             string xpath = string.Format("//*[@areal='{0}']", WebUtility.HtmlEncode(areal));
  13.             XmlDocument document = new XmlDocument();
  14.             document.Load("D:\\1.xml");
  15.             XmlNode element = document.SelectSingleNode(xpath);
  16.             Console.WriteLine(element.Attributes["name"].Value);
  17.         }
  18.     }
  19. }

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


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

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

15   голосов , оценка 4.133 из 5

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

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

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