使用C#和XAML解析Windows 8 Metro样式应用程序的HTML

3
我的应用程序应该解析html并将内容加载到列表框中。我能通过WebClient获取html,但在解析它时卡住了。
我听说过HtmlAgilityPack和Fizzler,但找不到有关它们用法的教程或示例。
我希望能得到一些帮助,从下面所示的html文档中将"first_content"和"second_content"抓取到一个列表框中。
<html>
<body> 
<div>
<section>
<article>
   <header> 
       <hgroup> 
           <h1> 
              first_content
           </h1>
       </hgroup>
   </header> 
   <ul> 
        <li> 
           second_content
        </li>
   </ul>
</article> 
</section>
</div>
</body>
</html>

1
针对“你尝试了什么?”系列,你是否尝试使用原始的XmlReader? - Adriano Repetti
1
我有点佩服你在格式化问题上所付出的努力,但请阅读关于格式化的常见问题解答,用正确的方式会更容易一些。 - GSerg
2个回答

3

HtmlAgilityPack是一个非常实用的工具,我已经在WCF、Windows Phone和WinRt中成功使用它,如果您需要教程,请查看这篇博客文章


感谢您的博客。但是,博客中的文章在winrt上无法工作。 例如,“var document = webGet.Load(url);”webGet没有“Load”方法来加载URL。相反,我使用了webGet.LoadFromWebAsync(“http://www.something.com”),它可以正常工作。 对于document.DocumentNode.SelectNodes(“//meta”)我得到了“DocumentNode”的红色下划线。我无法继续进行。 您能否帮助我找一个指向metro样式应用程序的教程? - uday sagar

0

你可以使用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;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接