我需要解析从服务器收到的HTML字符串。
<html>
<head/>
<body style="margin: 0;padding: 0">
<a href="http://itunes.apple.com/WebObjects/MZStore.woa
/wa/viewSoftware?id=319737742&mt=8&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
网址https://s3.amazonaws.com/sportschatter/postcard.jpg
以及href
部分。
我有WP7的HTML Agility包,但我不知道如何编写查询来获取这些信息。我试过这样的事情:
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);
但这也不起作用。请让我知道我做错了什么。
答案 0 :(得分:2)
你明显误解了你是如何使用LINQ2XML语法的(没有XPath,因为Windows Phone不支持XPath)
你需要做这样的事情:
var image = document.DocumentNode.Descendants("img").First()
var source = image.GetAttribute("src", "").Value;
答案 1 :(得分:-1)
使用 HtmlAgilityPack - 请勿使用正则表达式。
Descendants
内的'查询字符串'是一个XPath,而不是类似CSS的选择器。
以下是一个示例:http://htmlagilitypack.codeplex.com/wikipage?title=Examples 以下是有关XPath的一些信息:http://msdn.microsoft.com/en-us/library/ms256086.aspx