Поиск по атрибуту тега XML - C#
Формулировка задачи:
Здравствуйте, нужна ваша помощь.
У меня есть сохраненный XML документ с такими вот элементами
Мне нужно совершить поиск по одному критерию по Классу, Ареалу или Названию и получить ВСЕ значения узла в котором он нашел атрибут . Например, есть форма с поиском, я вписываю критерий поиска("По Ареалу") и само значение("Минская"). И есть TextBox в который я должен поместить результат поиска.
Есть у меня наработка, этот код создает новый документ и помещает в него только элемент Animals0 и все его атрибуты, а мне нужно наоборот, чтобы он по атрибуту выводил весь узел..
Вроде бы ясно разъяснил, помогите уж чем сможете..
<?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>
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);
}
}
}