Как прочитать строку с атрибутом? Xml

Есть допустим такой xml-файл:

<?xml version="1.0" encoding="UTF-8"?>
<data>
  <UTF-8 />
  <string id="book">бла-бла</string>
  <string id="book_anatomy">бла-бла-бла</string>
  </data>

Как прочитать строку по атрибуту и получит с нее текст в C#? Например, мне нужно получить текст "бла-бла" из строки id="book", как это сделать?


Ответы (1 шт):

Автор решения: Yitzhak Khabinsky

Вот как это сделать. Используя LINQ to XML API.

c#

void Main()
{
    const string fileName = @"e:\Temp\hex.xml";

    XDocument xdoc = XDocument.Load(fileName);
    
    string xelem = xdoc.Descendants("string")
        .Where(x => x.Attribute("id").Value.Equals("book"))
        .FirstOrDefault()?.Value;
        
    Console.WriteLine(xelem);
}

Output

бла-бла
→ Ссылка