使用replaceWith时,避免JSoup生成空格

时间:2014-01-21 17:53:40

标签: java html jsoup

我的目标是改变这个HTML:

<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>

我需要避免标签“TEXT”周围的空白,但是我没有找到一种方法或方法来指定如何在没有空格的情况下生成输出。

感谢您的帮助

1 个答案:

答案 0 :(得分: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设置为false。现在输出是:

<arial>TEXT</arial>

耶!