XML. Поиск узла по известному атрибуту - C#
Формулировка задачи:
Хочу вывести определенный Caption в зависимости от ID, как это сделать? Хотя бы в двух словах.
<?xml version="1.0" encoding="UTF-8"?> <Database Name=""> <Attribute Caption="параметр" ID="8,5"/> <Attribute Caption="параметр" ID="5,5"/> <Attribute Caption="параметр" ID="5"/> </Database>
Решение задачи: «XML. Поиск узла по известному атрибуту»
textual
Листинг программы
using System;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
class Program
{
public static void Main()
{
string xml = "<?xml version="1.0" encoding="UTF - 8"?>" +
"<Database Name = "" >" +
"<Attribute Caption="abc" ID="8,5" />" +
"<Attribute Caption="def" ID="5,5" />" +
"<Attribute Caption="ghi" ID="5" />" +
"</Database> ";
//1
XmlDocument document = new XmlDocument();
document.LoadXml(xml);
var node = document.SelectSingleNode("//Attribute[@ID='5,5']");
Console.WriteLine(node.Attributes["Caption"].Value);
//2
XDocument document1 = XDocument.Parse(xml);
var node1 = document1.XPathSelectElement("//Attribute[@ID='8,5']");
Console.WriteLine(node1.Attribute("Caption").Value);
//3
var node2 = document1.Descendants("Attribute").First(el => el.Attribute("ID").Value == "5");
Console.WriteLine(node2.Attribute("Caption").Value);
}
}