क्या नियमित अभिव्यक्ति है जो पूरी तरह से HTML टैग को हटा सकती है? वैसे, मैं जावा का उपयोग कर रहा हूं।जावा में HTML टैग को कैसे हटाएं
उत्तर
आपको इसके बजाय एक HTML पार्सर का उपयोग करना चाहिए। मुझे htmlCleaner पसंद है, क्योंकि यह मुझे HTML का एक सुंदर मुद्रित संस्करण देता है।
htmlCleaner के साथ आप कर सकते हैं:
TagNode root = htmlCleaner.clean(stream);
Object[] found = root.evaluateXPath("//div[id='something']");
if(found.length > 0 && found instanceof TagNode) {
((TagNode)found[0]).removeFromTree();
}
मुझे HTMLCleaner को इंगित करने के लिए धन्यवाद :) – exhuma
क्या हमें इस उपरोक्त कोड का उपयोग करने के लिए किसी भी लाइब्रेरी को क्रम में प्राप्त करने की आवश्यकता है? और root.evaluateXPath ("// div [id = 'something']"); इस "कुछ" में कोई आईडी अनुष्ठान हो सकता है? कृपया मुझे बताओ। धन्यवाद –
सं रेगुलर एक्सप्रेशन परिभाषा पार्स एचटीएमएल से नहीं कर सकते।
आप s/<[^>]*\>//
पर रीगेक्स का उपयोग कर सकते हैं या ऐसा कुछ बेवकूफ़ बना सकते हैं लेकिन यह अपर्याप्त होगा, खासकर अगर आप टैग की सामग्री को हटाने में रुचि रखते हैं।
जैसा कि एक अन्य पोस्टर ने कहा, एक वास्तविक HTML पार्सर का उपयोग करें।
तुम सिर्फ टैग हटाने की जरूरत है, तो आप इस रेगुलर एक्सप्रेशन का उपयोग कर सकते हैं:
content = content.replaceAll("<[^>]+>", "");
यह केवल टैग अन्य HTML सामान निकाल देंगे, लेकिन नहीं। अधिक जटिल चीजों के लिए आपको पार्सर का उपयोग करना चाहिए।
संपादित: HTML के साथ समस्याओं से बचने के टिप्पणी आप निम्न कर सकते हैं:
content = content.replaceAll("<!--.*?-->", "").replaceAll("<[^>]+>", "");
चूंकि आप मांस के किसी भी अक्षर '.', '^' और '$' का उपयोग नहीं करते हैं, इसलिए 's' और' m' झंडे को छोड़ा जा सकता है। –
यह रेगेक्स मैंगलिंग का कारण बनने के लिए उत्तरदायी है यदि HTML में एम्बेडेड '<' or '>' वर्णों के साथ XML टिप्पणियां हैं। –
वैकल्पिक रूप से, अगर आपके इरादे प्रदर्शित करने के लिए उपयोगकर्ता नियंत्रित इनपुट वापस ग्राहक के लिए है, तो आप भी कर सकते हैं बस <
<
और सभी >
>
द्वारा प्रतिस्थापित करें। इस तरह एचटीएमएल का अर्थ क्लाइंट के आवेदन (वेबब्रोसर) द्वारा नहीं किया जाएगा।
यदि आप जेएसपी का उपयोग तकनीक के रूप में कर रहे हैं, तो आप इसके लिए जेएसटीएल के c:out
का उपयोग कर सकते हैं। यह डिफ़ॉल्ट रूप से सभी HTML इकाइयों से बच जाएगा। तो उदाहरण के लिए
<c:out value="<script>alert('XSS');</script>" />
अलर्ट प्रदर्शित नहीं करेगा, लेकिन केवल वास्तविक स्ट्रिंग दिखाएं।
आप सभी html टैग हटाने के लिए इस सरल कोड का उपयोग कर सकते हैं ...
htmlString.replaceAll("\\<.*?\\>", ""))
यह केवल उद्घाटन टैग को हटा देगा और बंद टैग को अनचाहे छोड़ देगा। – jlordo
मैं इस तरह की नौकरी कभी नहीं करूंगा - सादे-पाठ में पार्सिंग एचटीएमएल सचमुच नौकरी दोस्त है .. – jebbie
यह मेरे लिए काम करता है लेकिन शायद टैग, टिप्पणियां, स्क्रिप्ट आदि की जटिलता पर निर्भर करता है। तो, एक जटिल मामले के लिए शायद एक एचटीएमएल पुस्तकालय बेहतर होना चाहिए। – jmoran
वहाँ JSoup जो एक जावा एचटीएमएल हेरफेर के लिए बनाया पुस्तकालय है। clean()
विधि और WhiteList
ऑब्जेक्ट को देखें। समाधान का उपयोग करने में आसान है!
वाह, आप महोदय, वास्तव में मेरा दिन बना दिया, मुझे वह पसंद है, हाँ! Markdownj, Markdown4J, htmlCleaner .. उनमें से सभी ***** क्षमा चाहते हैं .. JSoup एकमात्र है और केवल एक ही लाइनर के साथ आप वास्तव में इसे प्राप्त करते हैं: स्ट्रिंग सादा = नया HTML ToPlainText()। GetPlainText (Jsoup.parse (एचटीएमएल)); – jebbie
एक छोटा कोड 'स्ट्रिंग plaintext = jsoup.parse (html) .text(); ' – jrarama
@jrarama - बिलकुल नहीं होगा। 'Jsoup.parse (html) .text()' सभी टैग और व्हाइटस्पेस को हटा दें, आपको केवल टेक्स्ट की एक लंबी पंक्ति के साथ छोड़ दें, जबकि 'नया HTMLToPlainText()। GetPlainText (Jsoup.parse (html))' प्रारूप एक सरल तरीके से पाठ, लाइन ब्रेक, पैराग्राफ, बुलेट पॉइंट इत्यादि रखते हुए। – isapir
आपको किसी भी HTML पार्सर की आवश्यकता नहीं है। नीचे दिए गए कोड सभी HTML टिप्पणियों को हटा:
htmlString = htmlString.replaceAll("(?s)<!--.*?-->", "");
- 1. रेल में गुणों से सभी HTML टैग हटाएं
- 2. मैं कैसे HTML टैग
- 3. htmldocument से HTML नोड को हटाएं: HTMLAgilityPack
- 4. HTML टैग
- 5. HAML के पूर्व टैग से अवांछित इंडेंट को कैसे हटाएं
- 6. पाइथन में HTML टैग क्लाउड
- 7. खतरनाक पात्रों को कैसे हटाएं (यानी स्क्रिप्ट टैग)?
- 8. पीएचपी पार्स HTML टैग
- 9. जावा एम्बेडिंग में HTML
- 10. एक HTML पृष्ठ से सभी जावास्क्रिप्ट हटाएं
- 11. आईआर में घंटा टैग - सीमा हटाएं
- 12. "जावास्क्रिप्ट:;" HTML एंकर टैग
- 13. खाली HTML टैग
- 14. मान्य HTML टैग
- 15. jquery html() स्क्रिप्ट टैग स्ट्रिप्स टैग
- 16. Google ने HTML टैग को क्यों छोड़ा?
- 17. दोस्ताना यूआरएल से .html को कैसे हटाएं - मोडक्स?
- 18. HTML स्रोत कोड में HTML टैग विशेषता को कैसे टिप्पणी करें?
- 19. दिखाएँ संपत्ति जो html टैग
- 20. बैकबोन जेएस: अतिरिक्त टैग को देखने के लिए कैसे हटाएं?
- 21. é शीर्षक टैग में HTML इकाई कोड
- 22. जावा - HTML
- 23. PHPQuery के साथ एक HTML टैग को कैसे निकालें?
- 24. JSON में ऑब्जेक्ट को कैसे हटाएं?
- 25. <HTML> टैग में कक्षा विशेषता?
- 26. जावा में HTML कैसे प्राप्त करें
- 27. समापन HTML इनपुट टैग मुद्दा
- 28. जावा में केवल एक फ़ाइल की सामग्री को कैसे हटाएं?
- 29. Ext.js में कोई HTML इनपुट टैग स्वतः पूर्ण कैसे करेगा?
- 30. Struts html में एक enum उपयोग कैसे करें: चयन टैग
खोज बॉक्स में अपने शीर्षक टाइप करना, मैं निम्नलिखित है: http://stackoverflow.com/search?q=How+to+remove+HTML+tag + जावा में ... क्या आप सवाल पोस्ट करते समय वही नहीं मिला? – kdgregory
मुझे कोई डुप्लिकेट नहीं मिला। ये प्रश्न HTML से टेक्स्ट निकालने की परवाह करते हैं: http://stackoverflow.com/questions/240546/removing-html-from-a-java-string http: // stackoverflow।कॉम/प्रश्न/832620/स्ट्रिपिंग-एचटीएमएल-टैग-इन-जावा – tangens