2011-05-19 12 views
45

के साथ HTML को पार्स करना मैं निम्नलिखित HTML फ़ाइल को पार्स करने का प्रयास कर रहा हूं, मुझे कुंजी का मान प्राप्त करना है। यह विंडोज फोन के लिए सिल्वरलाइट पर किया जा रहा है।सी # .net

<HTML> 
<link ref="shortcut icon" href="favicon.ico"> 
<BODY> 
<script Language="JavaScript"> 
location.href="login.html?key=UEFu1EIsgGTgAV7guTRhsgrTQU28TImSZkYhPMLj7BChpBkvlCO11aJU2Alj4jc5" 
</script> 
<CENTER><a href="login.html?key=UEFu1EIsgGTgAV7guTRhsgrTQU28TImSZkYhPMLj7BChpBkvlCO11aJU2Alj4jc5">Welcome</a></CENTER></BODY></HTML> 

कोई विचार यहां से कहां से जाना है?

धन्यवाद

+1

मैंने अभी [सॉफ़्टवेयर सिफारिशें] (http://softwarerecs.stackexchange.com/) के लिए एक प्रश्न जोड़ा है - [सी # पुस्तकालय HTML को पार्स करने के लिए? - सॉफ्टवेयर सिफारिशें स्टैक एक्सचेंज] (http://softwarerecs.stackexchange.com/questions/10773/c-library-for-parsing-html/10774#10774)। –

उत्तर

66

HTMLAgilityPack को एक नज़र डालें। इसका एक बहुत सभ्य HTML पार्सर

http://html-agility-pack.net/?z=codeplex

======

यहाँ आप आरंभ करने के लिए (कुछ कोड (त्रुटि जाँच की आवश्यकता है)

HtmlDocument document = new HtmlDocument(); 
string htmlString = "<html>blabla</html>"; 
document.LoadHtml(htmlString); 
HtmlNodeCollection collection = document.DocumentNode.SelectNodes("//a"); 
foreach (HtmlNode link in collection) 
{ 
    string target = link.Attributes["href"].Value; 
} 
+1

+1 मैंने पहले इस टूल का उपयोग किया है और यह बहुत अच्छा है। – pixelbobby

+0

हम एजिलिटी पैक और चट्टानों का उपयोग करके बहुत सारे स्क्रैपिंग करते हैं। निश्चित रूप से यह कोशिश करें। – Pat

+1

मुझे नहीं लगता कि आप विंडोज फोन के लिए चपलता पैक का उपयोग कर सकते हैं। – Nathan

0

आप रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं Regex class) इसके लिए। अभिव्यक्ति कुछ ऐसा हो सकती है: login.html\?key=[^"]*

+4

मैं डाउनवोट नहीं करूँगा क्योंकि मैं अच्छा हूं लेकिन RegEx अब ऐसा करने का एक निश्चित अग्नि तरीका नहीं है, बल्कि HTMLAgilityPack इन दिनों काफी सोने का मानक है। – pixelbobby

+11

-1 (दुर्भाग्य से मैं निष्पक्ष हूं - * अच्छा * के साथ कुछ भी नहीं करना - और यह जानकारी आपको RexEx का उपयोग करके HTML को पार्स करने का प्रयास करने की भी कोशिश नहीं करेगी) http://stackoverflow.com/questions/1732348/ रेगेक्स-मैच-ओपन-टैग-सिवाय-एक्सएचटीएमएल-सेल्फ-निहित-टैग/1732454 # 1732454 –

+2

रेगेक्स काम कर सकता है लेकिन मैं भविष्य के लिए अन्यथा अत्यधिक सुझाव देता हूं। – Pat