Мне интересно, есть ли надежный и изящный способ использования linq2xml для запроса элемента глубоко внутри иерархии xml. Например:
<?xml version="1.0" encoding="utf-8" ?>
<data>
<core id="01234">
<field1>some data</field1>
<field2>more data</field2>
<metadata>
<response>
<status code="0">Success</status>
<content>
<job>f1b5c3f8-e6b1-4ae4-905a-a7c5de3f13c6</job>
<id>id of the content</id>
</content>
</response>
</metadata>
</core>
</data>
С этим XML, как мне запросить значение, не используя что-то вроде этого:
var doc = XElement.Load("file.xml");
string id = (string)doc.Element("core")
.Element("metadata")
.Element("response")
.Element("content")
.Element("id");
Мне не нравится вышеуказанный подход, потому что он подвержен ошибкам (выдает исключение, если в иерархии отсутствует какой-либо тег) и, честно говоря, безобразен. Есть ли более надежный и изящный подход, возможно, с использованием sql-подобного синтаксиса linq?