2011-09-11 31 views
13

我需要能够在我的C#应用​​程序中简单地指定HTML元素。我只会使用Linq到Sql,但这需要可配置/可串行化为一个字符串。我当然可以使用XPath,但在这一点上像Sizzle这样的东西对于大多数人来说更加自然。在C#中有没有Sizzle/jQuery选择器的实现?

任何人都知道.net中是否存在嘶嘶声选择器实现?

+6

[CsQuery](http://github.com/jamietre/CsQuery)似乎非常有前途。我还没有使用它,只是阅读了这个问题后 - 浏览了这个问题。不应该关闭。 – robert4

回答

18

叶普,Fizzler。它建立在HtmlAgilityPack之上,并且工作得很好,即使作者说它是测试版。我们将它用于重大项目的生产。来自文档的示例:

// Load the document using HTMLAgilityPack as normal 
var html = new HtmlDocument(); 
html.LoadHtml(@" 
    <html> 
     <head></head> 
     <body> 
     <div> 
      <p class='content'>Fizzler</p> 
      <p>CSS Selector Engine</p></div> 
     </body> 
    </html>"); 

// Fizzler for HtmlAgilityPack is implemented as the 
// QuerySelectorAll extension method on HtmlNode 

var document = htmlDocument.DocumentNode; 

// yields: [<p class="content">Fizzler</p>] 
document.QuerySelectorAll(".content"); 

// yields: [<p class="content">Fizzler</p>,<p>CSS Selector Engine</p>] 
document.QuerySelectorAll("p"); 

// yields empty sequence 
document.QuerySelectorAll("body>p"); 

// yields [<p class="content">Fizzler</p>,<p>CSS Selector Engine</p>] 
document.QuerySelectorAll("body p"); 

// yields [<p class="content">Fizzler</p>] 
document.QuerySelectorAll("p:first-child"); 
相关问题