2013-06-07 4 views
0

Я пытаюсь разобрать HTML-страницу с помощью Xpath с JAVA. Вот мой код:Java - Проблемы с преобразованием специальных символов HTML

 /** Cleaning the html file */ 
     /** the 'doc' variable is a String containing the whole html file */ 
     TagNode tagNode = new HtmlCleaner().clean(doc); 
     Document doc2 = new DomSerializer(new CleanerProperties()).createDOM(tagNode); 




     XPath xpath = XPathFactory.newInstance().newXPath(); 

     /** xpath request */ 
     Object dates_experience = xpath.evaluate("/html/body/div[3]/div/div/div[2]/div/div/div[2]/div[4]/div/div[3]/h4/span[2]", doc2, XPathConstants.NODESET); 

     NodeList nodes = (NodeList) dates_experience; 
     String s; 
     for (int i = 0; i < nodes.getLength(); i++) { 
      s = org.apache.commons.lang3.StringEscapeUtils.unescapeHtml4(nodes.item(i).getTextContent()); 
      System.out.println(s); 
     } 

Я думаю, что у меня есть probems с stringEscapeUtils или с HtmlCleaner, так как на выходе, я вижу это:

� 

вместо этих символов:

é, è, ', à, û, ...etc 

Например, у меня есть этот вход:

décembre 2010 - décembre 2010) 
février 2010 - juin 2010) 
juillet 2009 - septembre 2009) 
juin 2009 - juin 2009) 
juillet 2008 - août 2008) 

Моя программа производит этот вывод:

d�cembre 2010 - d�cembre 2010) 
f�vrier 2010 - juin 2010) 
juillet 2009 - septembre 2009) 
juin 2009 - juin 2009) 
juillet 2008 - ao�t 2008) 

могли бы вы помочь мне решить эту проблему, пожалуйста?

Спасибо.

+1

кажется, что вы не должны бежать или unescpae их, до тех пор, как вы уважаете набор символов данных. –

+1

Правильно ли загружена строка «doc», действительная кодировка? Строка doc должна быть загружена кодировкой документа, как определено в HTML-файле . – Toilal

+0

Да, я загрузил его в UTF-8, как определено в HTML-файле –

ответ

1

Я подозреваю, что вы должны * ип * побег, не избежать их: StringEscapeUtils.unescapeHtml4(String)

+0

Можете ли вы опубликовать несколько примеров ввода/вывода ваших данных? – qqilihq

+0

Итак, отправьте начало строки, затем мы может показаться i t out ... –

+0

Сообщение отредактировано !!! –

Смежные вопросы