c# - How to convert HTML to plain text -
इस सवाल का पहले से ही एक उत्तर है: < / Html>
निम्नलिखित फ़ंक्शन के साथ सादा पाठ करें, लेकिन परिवर्तित होने में अभी भी त्रुटि हो रही है।
<पूर्व> निजी स्थिर स्ट्रिंग HtmlToPlainText (स्ट्रिंग HTML) {const स्ट्रिंग टैग WhiteSpace = @ "(& gt; | $) (\ डब्ल्यू | \ n | \ r) + & lt;"; // एक मैच या अधिक (सफेद स्थान या लाइन ब्रेक) के बीच '& gt;' और '& lt;' Const स्ट्रिंग स्ट्रापफॉर्मेटिंग = @ "& lt; [^ & gt;] * (& gt; |)"; // किसी भी वर्ण के बीच '& lt;' और '& gt;', जब भी अंत टैग में स्ट्रिंग पंक्ति की यादृच्छिक पंक्ति होती है, ब्रेक = @ "& lt; (br | BR) \ s {0,1} \ / {0}>"; // matches: & lt; br & gt; ;, & Lt; br / & gt;, & lt; br / & gt;, & lt; बीआर & gt; & lt; BR / & gt; & lt; बीआर / & gt; Var लाइनब्रेकआरगेज = नया रेगेक्स (लाइनब्रैक, रेगेक्सऑप्टिस। मल्टीलाइन); Var स्ट्रिपफॉर्मेटिंग रीजक्स = नया रेगेक्स (पट्टी फ़ॉर्मेटिंग, रेगेक्स ऑप्शन। मल्टीलाइन); Var टैग WhiteSpaceRegex = नया Regex (टैगWhiteSpace, RegexOptions.Multiline); Var टेक्स्ट = html; // डीकोड एचटीएमएल विशिष्ट अक्षर पाठ = System.Net.WebUtility.HtmlDecode (पाठ); // निकालें टैग्स व्हाइटस्पेस / लाइन ब्रेक्स टेक्स्ट = टैग WhiteSpaceRegex.Replace (टेक्स्ट, "& gt; & lt;"); // बदलें & lt; br / & gt; लाइन ब्रेक के साथ टेक्स्ट = लाइनरेक रिजैक्स। रीप्ले (टेक्स्ट, एनवायरनमेंट.NewLine); // स्ट्रिप फ़ॉर्मेटिंग टेक्स्ट = स्ट्रिप फ़ॉर्मेटिंग रीजक्स। रीप्ले (टेक्स्ट, स्ट्रिंग.एप्टी); टेक्स्ट = टेक्स्ट। बदलें ("& gt;", ""); वापसी पाठ; }
जब मैंने कोड डिबग करने की कोशिश की तो यह \ r और \ r \ n भी सादे टेक्स्ट आउटपुट में प्रदर्शित करता है। यह फ़ंक्शन एचटीएल को सादे पाठ में ठीक से परिवर्तित नहीं करता है। क्या कोई मुझे कोई अन्य रूपांतरण फ़ंक्शन सुझा सकता है?
धन्यवाद
आप < कोड> HtmlAgilityPack के HtmlToText डेमो, जो हो सकता है।
मैंने अन्य उत्तरों पर एक नज़र डाला था लेकिन वे सभी नियमित अभिव्यक्तियों से जुड़े विभिन्न समाधानों का सुझाव देते हैं। मैंने सोचा कि HtmlAgilityPack
को पर्याप्त ध्यान नहीं मिला।
आपको केवल अपने प्रोजेक्ट में प्लग करना होगा और उदाहरण का पालन करना होगा।
Comments
Post a Comment