Рассмотрим следующий 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?
UPDATE:
После обезьяны с этим еще немного я нашел способ сделать то, что я пытаюсь сделать:
var hash = xml.Descendants("hash").FirstOrDefault().Value;
Мне все равно интересно узнать, есть ли у кого-то лучшее решение?