Поиск по атрибуту тега 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);
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д