2015-03-05 6 views
3

Я разбираю и выводя XML-файл с помощью JSoup (и, конечно, изменяя элементы между ними).Выход JSoup без добавленных пробелов и разрывов строк вокруг элементов

Выходной файл имеет дополнительные пробелы и разрывы строк. Мне было интересно, могу ли я напечатать это в исходном формате.

Оригинал:

<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()); 
+0

Вы видели это: http://stackoverflow.com/q/12503117/1700321? –

+0

Интересно, но разве это не так, поскольку оно добавляет \ n к нему? – dorien

+2

Я имел в виду больше параметров 'prettyPrint' и' OutputSettings'. –

ответ

7

С некоторыми помощью от Aleksandr M я ее решил в следующем путь:

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

Чуть менее хорошо, но это также, казалось, сделать трюк:

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

метод один делает трюк для меня. Благодарю. – John

0

Попробуйте это:

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

Надеется, что это помогает

+0

Пробовал это, но никакой разницы. – dorien