2008-10-23 9 views
5

पल का सबसे अच्छा तरीका है कि मैं एक स्ट्रिंग है कि HTML शामिल से डोम में हेरफेर करने में सक्षम हो पाया है के लिए है:मैं सीओएम में एचटीएमएल की स्ट्रिंग से डीओएम का उपयोग कैसे कर सकता हूं?

WebBrowser webControl = new WebBrowser(); 
webControl.DocumentText = html; 
HtmlDocument doc = webControl.Document; 

दो समस्याएं हैं:

  1. आवश्यक है WebBrowser वस्तु!
  2. यह एकाधिक धागे के साथ उपयोग नहीं किया जा सकता है; मुझे ऐसा कुछ चाहिए जो विभिन्न धागे (मुख्य धागे के अलावा) पर काम करेगा।

कोई विचार?

+0

http://msdn.microsoft.com /en-us/library/aa290341%28v=vs.71%29.aspx – ThunderGr

उत्तर

16

मैंने HTML के लिए GooglePlex की खोज की और मुझे Html Agility Pack मिला, मुझे नहीं पता कि यह उसके लिए है या नहीं, मैं अभी कोशिश करने के लिए इसे डाउनलोड कर रहा हूं।

+1

एचटीएमएल एजिलिटी पैक भयानक है –

+0

डिट्टो - मैं वास्तव में दस्तावेज़ को अच्छे आकार में लाने के लिए एचटीएमएल टिडी का उपयोग करने की सिफारिश करने वाला था और फिर इसे एक्सएमएल डॉक्यूमेंट में बदल देता हूं, लेकिन शायद आप एचटीएमएल एजिलिटी पैक के साथ इसे छोड़ सकते हैं। अच्छी चीज़। –

+0

एग्जिटी पैक पैक एचटीएमएल और थ्रेड के साथ ठीक काम करता है! मुझे मेरा जवाब मिला! Thx सब !!!HtmlAgilityPack के लिए –

6

आप (शायद आप हमें अधिक विवरण दें सकते हैं?) करने के लिए कोशिश कर रहे हैं और चाहे या नहीं एचटीएमएल अच्छी तरह से बनाई है पर निर्भर करता है के आधार पर आप एक XmlDocument को यह परिवर्तित कर सकते हैं:

System.Xml.XmlDocument x = new System.Xml.XmlDocument(); 
x.LoadXml(html); // as long as html is well-formed, i.e. XHTML 

फिर आप WebBrowser उदाहरण के बिना इसे आसानी से कुशल बना सकते हैं। धागे के लिए, मुझे उस भाग का जवाब जानने के लिए XmlDocument के कार्यान्वयन के बारे में पर्याप्त जानकारी नहीं है।


दस्तावेज़ उचित रूप में नहीं है, तो आप आकार में पहली बार इसे पाने के लिए NTidy (HTML Tidy के लिए .NET आवरण) इस्तेमाल कर सकते हैं; मुझे एक बार एक परियोजना के लिए यह बहुत करना था और यह वास्तव में बहुत बुरा नहीं था।

+0

दस्तावेज़ को अच्छी तरह से प्रारूपित नहीं किया जा सकता है, यही कारण है कि XmlDocument काम नहीं कर सकता है लेकिन मैं विकल्प की सराहना करता हूं। –

5

जेसनबंटिंग ने पहले से ही इसे पोस्ट किया है, लेकिन यह वास्तव में HTML टिडी के आसपास एक .NET wrapper का उपयोग करने के लिए काम करता है और इसे XmlDocument में लोड करता है।

मैंने पहले इस .net आवरण का इस्तेमाल किया है:

http://www.codeproject.com/KB/cs/ZetaHtmlTidy.aspx

और इस तरह कुछ हद तक इसे लागू किया:

string input = "<p>crappy html<br <img src=foo></div>"; 
HtmlTidy tidy = new HtmlTidy() 
string output = tidy.CleanHtml(input, HtmlTidyOptions.ConvertToXhtml); 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(output); 

क्षमा करता है, तो एक पोस्ट :) माना

1

यह एक है पुराना सवाल अब देखते हैं:

  • The HTML Agility Pack (आप पहले से ही इस पाया है)
  • CsQuery, एक नेट jQuery बंदरगाह, जो jQuery डेवलपर्स के लिए बहुत अच्छा होगा
संबंधित मुद्दे

 संबंधित मुद्दे