我使用HtmlAgilityPack为Windows Phone 8.1构建了一个应用程序的快速C#/ Mono原型。
将此代码转换为WP8.1和官方.Net for Windows Store变得非常麻烦。我想要的只是获取所有td节点,其中包含" column3"的类。我该怎么做?对于我的非商店原型,使用SelectNodes可以正常工作。
现在我了解到,对于Windows应用商店应用,缺少SelectNodes和SelectSingleNode。然而,我的问题是使用linq和Decendants的建议替代方案也不起作用。
我当然用Google搜索,但由于某种原因,所有结果都包含以下内容之一或其变体。
到目前为止我已尝试过:
var hits = doc.DocumentNode.SelectNodes("//td[@class=\"column3\"]");
//SelectNodes is undefined
var hits = doc.DocumentNode.DescendantsAndSelf("td").Where(x => x.Name.ToLower() =="td");
//Where() is undefined
HtmlNode parent = doc.DocumentNode
.Descendants("ul")
.FirstOrDefault(o => o.GetAttributeValue("class", "")
== "songs-list1");
//doesn't do what i want it to, but FirstOfDefault is undefined
答案 0 :(得分:0)
我怀疑你错过了所需的使用声明。以下内容应返回属性<td>
等于class
的所有"column3"
个节点:
using System.Linq;
.......
var hits = doc.DocumentNode
.Descendants("td")
.Where(o => o.GetAttributeValue("class", "")
== "column3")
.ToList();