Разбор HTML-строки в WP7 - PullRequest
       26

Разбор HTML-строки в WP7

0 голосов
/ 08 ноября 2011

Мне нужно проанализировать строку HTML, полученную с сервера.

 <html>
 <head/>
 <body style="margin: 0;padding: 0">
    <a href="http://itunes.apple.com/WebObjects/MZStore.woa   
/wa/viewSoftware?id=319737742&amp;mt=8&amp;uo=6" style="margin: 0;padding: 0"><img   
src="https://s3.amazonaws.com/sportschatter/postcard.jpg" style="margin: 0;padding: 
0"/></a>
</body>
</html>

Это ответ, который я получаю с сервера. Мне нужно получить img URL https://s3.amazonaws.com/sportschatter/postcard.jpg, а также часть href. У меня есть пакет HTML Agility для WP7, но я не знаю, как написать запрос, чтобы получить эту информацию. Я пробовал что-то вроде этого:

HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
         document.LoadHtml(htmlString);


       var value  =  document.DocumentNode.Descendants("img src").
                                       Select(
                                           x =>
                                           x.InnerText);

Это не дает мне никакой ценности. Я тоже пробовал Regex:

    string parseString = htmlstring;
        Regex expression = new Regex(@".*img src=(\d+).*$");
        Match match = expression.Match(parseString);
        MessageBox.Show(match.Groups[1].Value); 

но это тоже не работает. Пожалуйста, дайте мне знать, что я делаю неправильно.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2011

Вы явно не поняли, как предполагается использовать синтаксис LINQ2XML (без XPath, поскольку XPath не поддерживается на Windows Phone)

Вам нужно сделать что-то вроде этого:

var image = document.DocumentNode.Descendants("img").First()
var source = image.GetAttribute("src", "").Value;
0 голосов
/ 08 ноября 2011

Использовать HtmlAgilityPack - не использовать регулярные выражения.

Строка запроса внутри Descendants - это XPath, а не CSS-подобный селектор.

Вот пример: http://htmlagilitypack.codeplex.com/wikipage?title=Examples Вот некоторая информация о XPath: http://msdn.microsoft.com/en-us/library/ms256086.aspx

...