Как удалить пробелы при создании XML - PullRequest
0 голосов
/ 28 ноября 2018

Учитывая следующий код:

def createXmlOutput(...) : Elem =
{
   <something>
     { if (condition == true) <child>{ "my child value if condition would be true" }</child> }
     <otherchild>{ "my other child value" }</otherchild>
   </something>
}

Я получу следующий вывод в случае ложного условия:

<something>

  <otherchild>my other child value</otherchild>
</something>

Итак, блок { if.. } приводит к дополнительномупустая строка, если условие ложно и элемент не помещен.

Как этого избежать?Я создаю довольно большой XML с большим количеством необязательных элементов, что приводит к избыточному пробелу и пустым строкам при этом.

Есть ли способ полностью свернуть пробел и символы новой строки после создания XML, поэтому яесть все в одной строке?(в любом случае это мой предпочтительный стиль, потому что он предназначен для межмашинной связи)

1 Ответ

0 голосов
/ 28 ноября 2018

Похоже, что вы должны добавить детей вручную - это один из способов, а другой способ - использовать scala.xml.Utility.trim.Я взял ваш код и переписал это так:

 def createXmlOutput(condition:Boolean) : Elem =
 {
   val parent: Elem = <something>
                      <otherchild>{ "my other child value" }</otherchild>
                      </something>
  val child = <child>{ "my child value if condition would be true" }</child>
  if(condition == true) parent.copy(child = parent.child :+ child)
   else parent
 }

Надеюсь, это поможет

А также вы можете использовать что-то вроде этого scala.xml.Utility.trim(createXmlOutput(true)), если вы не добавляете дочерний элемент вручную.

...