Можно ли указать поведение EOL при использовании XMLOutputFactory?

Мне нравится записывать элемент XML в файл, но я хочу установить разделитель строк между каждым узлом элемента, поэтому при открытии файла в Windows или Ubuntu у меня есть правильный формат. например:

val lineSep = System.getProperty("line.separator") 
val xmlData : Elem = <person>
       <firstName>John</firstName>
       <lastName>Doe</lastName>
  <emails>
  <email type=”primary”>john.doe@noone.com</email>
  <email type=”secondary”>john.doe@noone.com</email>
  </emails>
  <address>
  <street>595 Market Street</street>
  <city>San Francisco</city>
  <zip>94105</zip>
  </address>
  </person>

val xmlStreamWriter = XMLOutputFactory.newInstance.createXMLStreamWriter(outputstream)
xmlStreamWriter.writeDTD(xmlData)

Как записать это в файл с учетом lineSeparator? в XMLOutputFactory есть метод setProperty(), можно ли здесь указать разделитель строк?

1 ответ

Из стандартной библиотеки XML Scala - Руководство по началу работы:

Чтобы записать XML в файл:

scala.xml.XML.save("books.xml", books)

Для форматирования XML используйте scala.xml.PrettyPrinter чтобы настроить длину строки и уровень отступа:

val pp = new scala.xml.PrettyPrinter(24, 4)
pp.format(books)
Другие вопросы по тегам