2011-09-11 15 views
13

मुझे अपने सी # एप्लिकेशन में एचटीएमएल से तत्वों को बस निर्दिष्ट करने में सक्षम होना चाहिए। मैं सिर्फ लिंक से एसक्यूएल का उपयोग करता हूं लेकिन इसे एक स्ट्रिंग के लिए कॉन्फ़िगर करने योग्य/क्रमबद्ध करने की आवश्यकता है। मैं निश्चित रूप से XPath का उपयोग कर सकता था लेकिन इस बिंदु पर Sizzle की तरह कुछ ज्यादातर लोगों के लिए इतना अधिक प्राकृतिक है।क्या सी # में एक Sizzle/jQuery चयनकर्ता कार्यान्वयन है?

किसी को पता है कि एक झुकाव चयनकर्ता कार्यान्वयन .NET में मौजूद है या नहीं?

+6

[CsQuery] (http://github.com/jamietre/CsQuery) बहुत ही आशाजनक प्रतीत होता है। मैंने अभी तक इसका उपयोग नहीं किया है, बस इस बारे में पढ़ें - इस प्रश्न के माध्यम से ब्राउज़ करने के बाद। बंद नहीं किया जाना चाहिए। – robert4

उत्तर

18

Yepp, 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"); 
संबंधित मुद्दे