Рассмотрим следующий XML:
<response>
<status_code>200</status_code>
<status_txt>OK</status_txt>
<data>
<url>http://bit.ly/b47LVi</url>
<hash>b47LVi</hash>
<global_hash>9EJa3m</global_hash>
<long_url>http://www.tumblr.com/docs/en/api#api_write</long_url>
<new_hash>0</new_hash>
</data>
</response>
Я ищу действительно короткий способ получить только значение элемента <hash>
. Я пытался:
var hash = xml.Element("hash").Value;
Но это не работает. Можно ли предоставить запрос XPath к XElement
? Я могу сделать это со старым фреймворком System.Xml
, сделав что-то вроде:
xml.Node("/response/data/hash").Value
Есть ли что-то подобное в пространстве имен LINQ?
ОБНОВИТЬ:
Поработав с этим еще немного, я нашел способ делать то, что пытаюсь делать:
var hash = xml.Descendants("hash").FirstOrDefault().Value;
Мне все равно было бы интересно узнать, есть ли у кого-нибудь лучшее решение?