【问题标题】:Parsing html for windows 8 metro style application using C#, XAML使用 C#、XAML 为 Windows 8 Metro 风格应用程序解析 html
【发布时间】:2013-02-07 16:31:11
【问题描述】:

我的应用程序应该解析 html 并将内容加载到列表框中。我可以通过 webclient 获取 html,但无法解析它。
我听说过 Htmlagilitypack 和 Fizzler,但找不到任何关于它们用法的教程或示例。

我需要一些帮助来将“first_content”和“second_content”从下面显示的 html 文档中抓取到列表框中。

<html>
<body> 
<div>
<section>
<article>
   <header> 
       <hgroup> 
           <h1> 
              first_content
           </h1>
       </hgroup>
   </header> 
   <ul> 
        <li> 
           second_content
        </li>
   </ul>
</article> 
</section>
</div>
</body>
</html>

【问题讨论】:

  • 对于“你尝试了什么?”系列,您是否尝试过使用原始 XmlReader?
  • 我有点佩服the effort你在格式化你的问题,但请阅读faq on formatting,以正确的方式更容易完成。

标签: c# xaml windows-8 microsoft-metro


【解决方案1】:

HtmlAgilityPack 是要走的路,我一直在 WCF、Windows Phone 和现在的 WinRt 中使用它并取得了圆满成功,请查看教程this blog post

【讨论】:

  • 感谢您的博客。但是博客中的文章不适用于winrt。例如,“var document = webGet.Load(url);” webGet 没有“加载”方法来加载 URL。相反,我使用了正在工作的 webGet.LoadFromWebAsync("something.com")。对于 document.DocumentNode.SelectNodes("//meta"); 我的“DocumentNode”出现红色下划线。我无法继续。你能帮我提供一个仅指向 Metro 风格应用的教程?
【解决方案2】:

您可以使用 XPath。比如……

var html = "<html><body><div><section><article><header><hgroup><h1>first_content</h1></hgroup></header><ul><li>second_content</li></ul></article> </section></div></body></html>";
var doc = new XmlDocument();
doc.LoadXml(html);
var txt1 = doc.SelectSingleNode("/html/body/div/section/article/header/hgroup/h1").InnerText;
var txt2 = doc.SelectSingleNode("/html/body/div/section/article/ul/li").InnerText;

【讨论】:

    猜你喜欢
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多