在Windows应用商店应用中使用Html Agility包

时间:2014-08-07 14:28:26

标签: c# xpath windows-store-apps html-agility-pack

在我的Windows应用商店应用中,我有以下代码来提取id = pos_0

的div
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(my_html_string);

var div_i_need = doc.DocumentNode.Descendants("div").Where(x => x.Attributes.Contains("id") && x.Attributes["id"].Value == "pos_0").FirstOrDefault();

有更简单的方法吗?此版本的库中不存在SelectSingleNodeDescendants似乎不接受XPath

1 个答案:

答案 0 :(得分:0)

HtmlAgilityPack无法执行XPath查询,因为.NET没有针对Windows应用商店的XPath实现。使用GetAttributeValue()方法可以简化您的代码并删除Where()

var div_i_need = doc.DocumentNode
                    .Descendants("div")
                    .FirstOrDefault(x => x.GetAttributeValue("id", "") == "pos_0");
如果找不到该属性,

GetAttributeValue()将返回第二个参数