Using linq2xml to query a single item deep within
- by BrettRobi
I'm wondering if there is a robust and graceful way using linq2xml to query an item deep within an xml hierarchy. For example:
<?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>
With this xml how do I query the value of without using something like this:
var doc = XElement.Load("file.xml");
string id = (string)doc.Element("core")
.Element("metadata")
.Element("response")
.Element("content")
.Element("id");
I don't like the above approach because it is error prone (throws exception if any tag is missing in the hierarchy) and honestly ugly. Is there a more robust and graceful approach, perhaps using the sql-like syntax of linq?