2015-05-07 11 views
9

içinde dom dönüştürme sonra Ben dom baskın bazı değişiklikler yapmak ve bir String geri dönüştürmek için bir HTML String bir dom dönüştürmek çalışıyorum. HTML Fransızcadır ve é gibi karakterler &ampeacute; olarak dönüştürüldükten sonra dönüştürülen String'dir. dom dize dönüştürülür sonraé olarak gösterilen & eacute; java

TransformerFactory transformerFactory = TransformerFactory.newInstance(); 
Transformer transformer = transformerFactory.newTransformer(); 
DOMSource source = new DOMSource(doc); 

String modifiedContent = ""; 
StringWriter writer = new StringWriter(); 
StreamResult result = new StreamResult(writer); 
transformer.transform(source, result); 
modifiedContent = writer.toString(); 

"Resultats de recherche", bir dize, "Résultats de recherche" sonucudur.

Bunu bir FOP işlemciye bir pdf'ye dönüştürmek için besliyorum, böylece karakterleri orijinal biçiminde istiyorum.

+0

é to \ u00E9 (Unicode sunumu) dönüştürmeyi dener misiniz? Bu bağlantıya bir göz atın http://tutorials.jenkov.com/java-internationalization/unicode.html – esprittn

+0

'writer.toString()' baskılar R & Atilde; © sultats'? – sp00m

+0

@ sp00m, evet, tam olarak – stackMan10

cevap

1

DOMSource'un karakterleri html biçiminde tuttuğunu bana normal görünüyor.

Belki html karakterlerini normal dizelere dönüştürmek için Jakarta library unescape html method kullanabilirsiniz.

String unescapedHtml = StringEscapeUtils.unescapeHtml4(modifiedContent); 

projenize uygun maven dependency eklemek emin olun: Sizin durumunuzda , sadece bu satırı eklemek gerekir.

P.S. Maven merkezindeki kütüphanenin daha yeni bir sürümü var gibi görünüyor, ancak ilişkili javadoc bulamadık.