2010-03-07 4 views
0
<rsp stat="ok"> 

<image_hash>ducex</image_hash> 
<delete_hash>QXHbCECmDX</delete_hash> 
<original_image>http://i.imgur.com/ducex.jpg</original_image> 
<large_thumbnail>http://i.imgur.com/ducexl.jpg</large_thumbnail> 
<small_thumbnail>http://i.imgur.com/ducexs.jpg</small_thumbnail> 
<imgur_page>http://imgur.com/ducex</imgur_page> 
<delete_page>http://imgur.com/delete/QXHbCECmDX</delete_page> 

</rsp> 

Прежде всего, может кто-нибудь помочь мне начать разбираться? Все, что мне нужно сделать, это проверить значение «stat». если все в порядке, мне нужно получить ссылку «оригинальное изображение». Я нацелен на .NET 4.0 Client Frameowkr, но так ли это дает мне доступ к LINQ to XML?parsing XML вернулся с сервера

Как бы это сделать, используя C#? Любые подсказки, чтобы начать меня с? Thanks

+0

Вернувшись с сервера, вы имеете в виду, что вы разбираете это в HTML или вы разбираете его на одном сервере в C#. Если C# вы хотите использовать объект xmldoc – Hogan

+0

, я думаю, что это неудобно. У меня есть строка, которая имеет это значение. Я не думаю, что это важно, откуда идет строка, однако строка всегда будет в одной структуре. – masfenix

+0

это не имеет значения. Начиная с сервера, вам может быть предоставлен «Stream» или «XmlReader». Когда у вас есть что-то более богатое, чем строка, вы должны использовать его. Вы должны избегать обработки XML из строк, когда это возможно. –

ответ

2

Вы можете использовать LINQ to XML. Переменная xmlInput будет содержать вашу строку.

string xmlInput = @"<rsp stat=""ok""> 
<image_hash>ducex</image_hash> 
<delete_hash>QXHbCECmDX</delete_hash> 
<original_image>http://i.imgur.com/ducex.jpg</original_image> 
<large_thumbnail>http://i.imgur.com/ducexl.jpg</large_thumbnail> 
<small_thumbnail>http://i.imgur.com/ducexs.jpg</small_thumbnail> 
<imgur_page>http://imgur.com/ducex</imgur_page> 
<delete_page>http://imgur.com/delete/QXHbCECmDX</delete_page> 
</rsp> 
"; 

var xml = XElement.Parse(xmlInput); 
if (xml.Attribute("stat").Value == "ok") 
{ 
    string originalImage = xml.Element("original_image").Value; 
} 
+0

спасибо, моя ошибка была XElement.Parse (xmlInput); Я пытался использовать LINQ to XML в строковой переменной. – masfenix