2010-08-31 12 views
18

दोस्त का मुझे यूआरएल से विवरण का विश्लेषण करना है, जहां पार्स की गई सामग्री में कुछ HTML टैग हैं, तो मैं इसे सादा पाठ में कैसे परिवर्तित कर सकता हूं।HTML टेक्स्ट को सादा पाठ में कैसे परिवर्तित करें?

+0

क्या आपका सटीक आवश्यकताएँ हैं? क्या आपको HTML टैग को स्ट्रिप करने की आवश्यकता है? एक विशिष्ट टैग की सामग्री निकालें? –

+0

मैं सामग्री निकालने में सक्षम कर सकते हैं, लेकिन सामग्री

Zcc dsdfsf ddfdfsf

, तरह sfdfdfdfdf है ऊपर मैं अपने डेटा हो रही है, लेकिन मैं उन html टैग – MGSenthil

+0

साथ इसी तरह के सवाल text.without एक सरल सादे होने की जरूरत है यहां अच्छा जवाब: http://stackoverflow.com/questions/1518675/open-source-java-library-for-html-to-text-conversion/1519726#1519726। मैंने जेरिको का इस्तेमाल किया और यह ठीक काम करता है। –

उत्तर

1

मैं जो आप उत्पादन जो आप के खिलाफ xPath अभिव्यक्ति लिख सकते हैं देना चाहिए jTidy के माध्यम से कच्चे HTML पार्स करने की सलाह देते हैं। HTML को स्क्रैप करने का यह सबसे मजबूत तरीका है।

16

बस HTML टैग से छुटकारा पाने के सरल है:

// replace all occurrences of one or more HTML tags with optional 
// whitespace inbetween with a single space character 
String strippedText = htmlText.replaceAll("(?s)<[^>]*>(\\s*<[^>]*>)*", " "); 

लेकिन दुर्भाग्य आवश्यकताओं इतना आसान कभी नहीं कर रहे हैं:

आमतौर पर, <p> और <div> तत्वों एक अलग से निपटने की जरूरत है, वहाँ के साथ cdata ब्लॉक हो सकता है > वर्ण (जैसे जावास्क्रिप्ट) कि गंदगी regex आदि

+1

अच्छा है कि आपने उस जटिलता को स्पष्ट किया है! – ankitjaininfo

+0

कुछ पृष्ठभूमि के लिए यह सामान्य मामले के लिए क्यों काम नहीं करेगा, और एफ (यू | ओओ) एल-सबूत नहीं होगा: [एक्सएचटीएमएल स्वयं निहित टैग को छोड़कर RegEx मैच खुले टैग] (http://stackoverflow.com/प्रश्न/1732348/रेगेक्स-मैच-ओपन-टैग-सिवाय-एक्सएचटीएमएल-सेल्फ-निहित-टैग) –

6

आप html टैग को हटा दें और सादा पाठ के रूप में यह प्रदर्शित करने के लिए इस एक पंक्ति का उपयोग कर सकते हैं।

htmlString=htmlString.replaceAll("\\<.*?\\>", ""); 
0

आप ब्राउज़र के प्रदर्शन की तरह पार्स करने के लिए चाहते हैं, का उपयोग करें:

import net.htmlparser.jericho.*; 
import java.util.*; 
import java.io.*; 
import java.net.*; 

public class RenderToText { 
    public static void main(String[] args) throws Exception { 
     String sourceUrlString="data/test.html"; 
     if (args.length==0) 
      System.err.println("Using default argument of \""+sourceUrlString+'"'); 
     else 
      sourceUrlString=args[0]; 
     if (sourceUrlString.indexOf(':')==-1) sourceUrlString="file:"+sourceUrlString; 
     Source source=new Source(new URL(sourceUrlString)); 
     String renderedText=source.getRenderer().toString(); 
     System.out.println("\nSimple rendering of the HTML document:\n"); 
     System.out.println(renderedText); 
    } 
} 

मुझे आशा है कि इस ब्राउज़र प्रारूप में भी तालिका को पार्स करने में मदद मिलेगी।

धन्यवाद, गणेश

+0

क्या डाउनवॉटर कृपया बता सकते हैं कि वे क्यों डाउनवोट करते हैं? – koppor

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