【问题标题】:HtmlAgilityPack and windows 8 winRTHtmlAgilityPack 和 windows 8 winRT
【发布时间】:2012-10-10 22:04:08
【问题描述】:

我正在尝试为 Windows 8 构建 Metro 应用程序。在此应用程序中,我正在尝试解析来自网站的数据。为此,我正在使用 HtmlAgilityPack 1.4.6。但我对“Dose HAP 1.4.6 适用于 Windows 8?”感到非常困惑?和“它支持 Xpath 吗?” Codeplex 上有太多令人困惑的信息。就目前而言,它似乎可以在 Windows 8 上运行,但我看不到 HtmlNode.SelectNode 方法。如果 Xpath 不工作,是否还有其他选项可以进行解析?你能指导我看一个教程或例子吗?请...

你的

【问题讨论】:

    标签: windows-runtime html-agility-pack


    【解决方案1】:

    您可以使用 LINQ API:

    var doc = new HtmlDocument();
    doc.LoadHtml(contents);
    var programmes = doc.DocumentNode.Descendants().Where(d => d.GetAttributeValue("class", "") == "program")
    

    很遗憾,我找不到有关此 API 的最新信息。

    【讨论】:

    • 感谢巴特的回答!我只是将我的数据转换为 xml 并使用 SgmlReader 解析它。我可能很快会给 LINQ API 一个测试(只是出于好奇)
    【解决方案2】:

    几周前我创建了我自己的算法来保存网页,并且借助这几行代码,我还解决了在 windows 8 metro-app 中解析 img css js 的 html 代码的问题:(对于所有图像,HtmlDocument html,链接示例)

    IEnumerable<HtmlNode> imghrefNodes = html.DocumentNode.Descendants().Where(n => n.Name == "img");
    foreach (HtmlNode img in imghrefNodes)
    {
       HtmlAttribute att = img.Attributes["src"];
       //in att.Value you can find your img url
       //Here you can do everything what you want with all img links by editing att.Value
    }
    

    对于 css,您只需将 img 替换为 link 并将 src 替换为 href。其他节点同理。

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 2013-04-03
      • 2011-11-20
      • 1970-01-01
      • 2012-08-13
      • 2012-10-11
      • 2012-08-11
      • 1970-01-01
      相关资源
      最近更新 更多