String in HTML umwandeln

  • Themenstarter Themenstarter di
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
D

di

Gast
Hallo!

Ich würde gerne eine meiner Ausgabe, die als String erfolgt, in HTML ausgeben lassen. Also müsste ich meinen String ja irgendwie in HTML umwandeln. Da ich bestimmte Begriffe mit HTML highlighten möchte. Ist das möglich? Und wenn ja, wie mache ich das dann?
Bin dankbar für jede Hilfe!!

Liebe Grüße!
 
HTML ist einfacher Text, nichts anderes als ein String,
die Buntheit kommt erst, wenn ein Grafikprogramm wie ein Internetbrowser diesen Text verarbeitet

falls du nur deinen String um bestimmte HTML-Tags anreichern willst:
tue das, was genau ist die Frage?
 
Ich benutze Java Server Faces und meine Ausgabe wird in ein dataTable geladen.
Hier ist mein Java Code der Methode:

Code:
public void search(String q,  File index, String [] fields, ArrayList subresult, int numresults)  throws Exception {


		    	Directory fsDir = FSDirectory.getDirectory(index, false);
		    	IndexSearcher is = new IndexSearcher(fsDir);

				Analyzer analyzer = new StandardAnalyzer();
				Fragmenter fragmenter = new SimpleFragmenter(100);
				QueryParser queryparser = new MultiFieldQueryParser (fields, analyzer);
						Query query = queryparser.parse(q);
						Hits hits = is.search(query);
						IndexReader reader=null;
						query=query.rewrite(reader);
						QueryScorer scorer = new QueryScorer(query);
						SimpleHTMLFormatter formatter= new SimpleHTMLFormatter("<span class=\"highlight\">","</span>");
						
						Highlighter high = new Highlighter(formatter,scorer);
						high.setTextFragmenter(fragmenter); 
						numresults = numresults == -1 || numresults > hits.length() ? hits.length() : numresults;
						String rating = "";
						for (int i = 0; i <numresults; i++) {
							 if (hits.score(i)>schwelli){
							 	float f = hits.score(i);
							 	if (0.9f <= f) {rating = "******";}
							 	else if (0.8f <= f && f<0.9f){rating = "*****";}
							 	else if (0.7f <= f && f<0.8f){rating = "****";}
							 	else if (0.6f <= f && f<0.7f){rating = "***";}
							 	else if (0.5f <= f && f<0.6f){rating = "**";}
							 	else if (f <= 0.5f){rating = "*";}
								 Document doc = hits.doc(i);
								 String abstracts =doc.get("ABSTRACTS");
								 String title = doc.get("TITLE");
								 TokenStream abstract_stream = analyzer.tokenStream(q, new StringReader(abstracts));
								 TokenStream title_straem = analyzer.tokenStream(q, new StringReader(title));
								String fragment_abstract = high.getBestFragments(abstract_stream,abstracts, 5, "...");
								String fragment_title = high.getBestFragments(title_straem,title, 5, "...");
								 if(fragment_title.length()==0){
									 	 setAusgabeTitle(doc.get("TITLE"));
								 }else{
									 	 setAusgabeTitle(fragment_title);
								 }
								  if(fragment_abstract.length()==0){
									 	 setAusgabeAbstract(doc.get("ABSTRACTS"));
								 }else{
									 	 setAusgabeAbstract(fragment_abstract);
								 }
								  
								 //list.add(i+1+"\t"+q+"\t"+doc.get(entry_medline)+"\t"+hits.score(i)+"\t"+abstract_stream+"\t"+title_straem+"\t"+"MEDLINE");
							     
							     /*int No = i;
							     subresult.add((new Integer(No)).toString());*/
							     subresult.add(doc.get(entry_medline));
							     subresult.add("No Id");
							     subresult.add("No Id");
							     float sco = hits.score(i);
		    				     subresult.add(rating);//(hits.score(i));
		    				     subresult.add(fragment_abstract);
		    				     subresult.add(fragment_title);
		    				     subresult.add("No hits for this index");
		    				     subresult.add("MEDLINE");
							}
					}
							 	
			}
Doch wenn ich das jetzt so ausgeben lasse, dann schreibt er mir span... um das Wort herum, welches eigentlich gehighlighted werden soll. Ich habe auch eine css. Datei, in der .highlight{backgroundcolor:"yellow"} steht.

Seht ihr da, was ich anders machen muss??

[/code]
 
Das eben habe ich geschrieben. Habe mich ausversehen als Gast angemeldet.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben