2011-09-11 20 views
13

Tôi cần có khả năng chỉ định các phần tử từ html trong ứng dụng C# của mình. Tôi sẽ chỉ sử dụng LINQ to Sql nhưng điều này cần phải được cấu hình/serializable đến một chuỗi. Tất nhiên tôi có thể sử dụng XPath nhưng một cái gì đó giống như Sizzle vào thời điểm này chỉ là tự nhiên hơn rất nhiều đối với hầu hết mọi người.Có triển khai bộ chọn Sizzle/jQuery trong C# không?

Bất kỳ ai cũng biết nếu triển khai bộ chọn sizzle tồn tại trong .Net?

+6

[CsQuery] (http://github.com/jamietre/CsQuery) có vẻ rất hứa hẹn. Tôi chưa sử dụng nó, chỉ đọc về nó - sau khi duyệt qua câu hỏi này. Không nên đóng cửa. – robert4

Trả lời

18

Yepp, Fizzler. Nó được xây dựng dựa trên HtmlAgilityPack và hoạt động rất tốt, mặc dù các tác giả cho biết đó là phiên bản beta. Chúng tôi sử dụng nó trong sản xuất trên một dự án lớn. Các mẫu từ tài liệu:

// 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"); 
Các vấn đề liên quan