【问题标题】:How do I use HtmlAgilityPack on Windows Phone 8.1?如何在 Windows Phone 8.1 上使用 HtmlAgilityPack?
【发布时间】:2014-09-28 15:49:58
【问题描述】:

我已经使用 HtmlAgilityPack 制作了一个我想为 Windows Phone 8.1 构建的应用的快速 C#/Mono 原型。

将此代码转换为 WP8.1 和官方 .Net for Windows Store 变得很麻烦。我想要的只是获取所有具有“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

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2014-08-25
      相关资源
      最近更新 更多