输出JSoup,不添加空格和元素周围的换行符

时间:2015-03-05 11:46:25

标签: java xml jsoup musicxml

我正在使用JSoup解析并输出一个xml文件(当然还要修改它们之间的元素)。

输出文件有一些额外的空格和换行符。我想知道我是否可以用原始格式打印。

原文:

  <attributes>
        <divisions>4</divisions>
        <key>
          <fifths>0</fifths>
          <mode>major</mode>
          </key>
...

新:

<attributes> 
    <divisions>
     4
    </divisions> 
    <key> 
     <fifths>
      0
     </fifths> 
     <mode>
      major
     </mode> 
    </key> 
...

关于如何从元素中删除空格/进入的任何想法?

我目前正在阅读并打印文档,如下所示:

doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());


BufferedWriter htmlWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.xml"), "UTF-8"));
        htmlWriter.write(doc.toString());

2 个答案:

答案 0 :(得分:12)

Aleksandr M的帮助下,我通过以下方式解决了这个问题:

doc.outputSettings().indentAmount(0).prettyPrint(false);

有点不太好,但这似乎也可以解决问题:

htmlWriter.write(doc.toString().replaceAll(">\\s+",">").replaceAll("\\s+<","<"));

答案 1 :(得分:1)

试试这个:

doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
..
..

希望这有帮助