如何在Windows Phone 8.1上使用HtmlAgilityPack

本文关键字:HtmlAgilityPack Windows Phone | 更新日期: 2023-09-27 18:24:47

我使用HtmlAgilityPack为我想要为WindowsPhone8.1构建的应用程序制作了一个快速的C#/Mono原型。

将此代码转换为WP8.1和官方的.Net for Windows应用商店是很麻烦的。我只需要一个来获取类属性为"column3"的所有td节点。我该怎么做?对于我的非商店原型,使用SelectNodes可以很好地工作。

现在我明白了,对于Windows应用商店应用程序,SelectNodes和SelectSingleNode是缺失的。然而,我的问题是,使用linq和Decendants的建议替代方案也不起作用。

当然,我在谷歌上搜索过,但出于某种原因,所有的结果都包括下面的一个,或者它们的变体。

到目前为止我尝试过的:

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

如何在Windows Phone 8.1上使用HtmlAgilityPack

我怀疑您错过了所需的using语句。以下应返回属性class等于"column3"的所有<td>节点:

using System.Linq;
.......
var hits = doc.DocumentNode
              .Descendants("td")
              .Where(o => o.GetAttributeValue("class", "") 
                                    == "column3")
              .ToList();