给出以下代码:
<something>
<otherchild>my other child value</otherchild>
</something>
如果条件为假,我将得到以下输出:
{ if.. }
因此,如果条件为false且未放置元素,则{{1}}块会导致多余的空行。
如何避免这种情况?我正在构建带有许多可选元素的相当大的XML,这样做时会导致多余的空白和空行。
在创建XML之后,是否有一种方法可以完全折叠空白和换行符,所以我将所有内容都放在一行中了吗? (无论如何,这都是我的首选样式,因为它用于机器对机器的通信)
答案 0 :(得分:4)
好像您必须手动添加子级是一种方法,另一种方法是使用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))
的东西。