在我的Windows应用商店应用中,我有以下代码来提取id = pos_0
的divHtmlAgilityPack.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();
有更简单的方法吗?此版本的库中不存在SelectSingleNode
,Descendants
似乎不接受XPath
答案 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()
将返回第二个参数