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

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

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

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

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

textual
Листинг программы
using System;
using System.Net;
using System.Xml;
 
namespace Ghost
{
    class Program
    {
        static void Main(string[] args)
        {
            string areal = "Минская";
            string xpath = string.Format("//*[@areal='{0}']", WebUtility.HtmlEncode(areal));
            XmlDocument document = new XmlDocument();
            document.Load("D:\\1.xml");
            XmlNode element = document.SelectSingleNode(xpath);
            Console.WriteLine(element.Attributes["name"].Value);
        }
    }
}

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


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

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

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