2014-01-21 2 views
1

моя цель состоит в том, чтобы превратить этот HTML:Решено: Избегайте JSoup генерирующий пропуски при использовании ReplaceWith

<span style="font-family: Arial;">TEXT</span> 

в это:

<arial>TEXT</arial> 

Я использую этот код:

public static void main(final String[] args) { 
    final String input = "<span style=\"font-family: Arial;\">TEXT</span>"; 
    final Document document = Jsoup.parseBodyFragment(input); 
    final Tag tag = Tag.valueOf("arial"); 
    final Element span = document.getElementsByTag("span").get(0); 
    final Element newElement = new Element(tag, ""); 
    newElement.html(span.html()); 
    span.replaceWith(newElement); 
    System.out.println(document.body().children()); 
} 

Но мой выход:

<arial> 
TEXT 
</arial> 

Мне нужно избегать пробелов вокруг метки «ТЕКСТ», но я не нашел способ или способ указать, как генерировать вывод без пробелов.

Благодарим за помощь.

+1

Вы попробовали мое предложение? – Nambi

+0

Я хотел удалить пробелы между и TEXT и. Мне жаль, что вы получили жесткие ограничения: -/ – ordago

+1

Я обновил свой ответ, вы можете попробовать это. – Nambi

ответ

3

Наконец-то я нашел ответ:

public static void main(final String[] args) { 
    final String input = "<span style=\"font-family: Arial;\">TEXT</span>"; 
    final OutputSettings settings = new OutputSettings(); 
    settings.prettyPrint(false); 
    final Document document = Jsoup.parseBodyFragment(input); 
    document.outputSettings(settings); 
    final Tag tag = Tag.valueOf("arial"); 
    final Element span = document.getElementsByTag("span").get(0); 
    final Element newElement = new Element(tag, ""); 
    newElement.html(span.html()); 
    span.replaceWith(newElement); 
    System.out.print(document.body().children()); 
} 

мне нужно создать OutputSettings и установить prettyPrint ложь. Теперь выход:

<arial>TEXT</arial> 

Yay!

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