12

我正在使用 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());
4

2 回答 2

20

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

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

不太好,但这似乎也能解决问题:

htmlWriter.write(doc.toString().replaceAll(">\\s+",">").replaceAll("\\s+<","<"));
于 2015-03-05T12:42:35.360 回答
1

试试这个:

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

希望这可以帮助

于 2015-03-05T11:50:33.293 回答