输出 JSoup,元素周围不添加空格和换行符
Output JSoup without added spaces and line breaks around the elements
我正在使用 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>
...
知道如何从元素中删除 spaces/enters 吗?
我目前是这样读入并打印文档的:
doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());
BufferedWriter htmlWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.xml"), "UTF-8"));
htmlWriter.write(doc.toString());
试试这个:
doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
..
..
希望对您有所帮助
在 Aleksandr M 的帮助下,我通过以下方式解决了这个问题:
doc.outputSettings().indentAmount(0).prettyPrint(false);
不太好,但这似乎也能解决问题:
htmlWriter.write(doc.toString().replaceAll(">\s+",">").replaceAll("\s+<","<"));
我正在使用 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>
...
知道如何从元素中删除 spaces/enters 吗?
我目前是这样读入并打印文档的:
doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());
BufferedWriter htmlWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("output.xml"), "UTF-8"));
htmlWriter.write(doc.toString());
试试这个:
doc = Jsoup.parse(is, "UTF-8", "", Parser.xmlParser());
doc.outputSettings().escapeMode(Entities.EscapeMode.xhtml);
..
..
希望对您有所帮助
在 Aleksandr M 的帮助下,我通过以下方式解决了这个问题:
doc.outputSettings().indentAmount(0).prettyPrint(false);
不太好,但这似乎也能解决问题:
htmlWriter.write(doc.toString().replaceAll(">\s+",">").replaceAll("\s+<","<"));