如何使用Scala XML返回空NodeSeq?

时间:2016-04-27 02:49:31

标签: xml scala

我正在使用不同的函数构建XML,例如以下示例:

<xml>
  { maybeXml(param) }
</xml>

尝试根据param的值返回Empty或Non-empty NodeSeq,如:

def maybeXml(param: Boolean): NodeSeq = {
  if(param) <someXml></someXml>
  else ??? //Empty or None doesn't work
}

我现在使用的解决方案是将函数类型定义为Option [NodeSeq],然后将其用作maybeXml.getOrElse(“”),但这对我来说没那么有意义。我目前的用法如下:

<xml>
  { maybeXml(param).getOrElse("") }
</xml>

def maybeXml(param: Boolean): NodeSeq = {
  if(param) Some(<someXml></someXml>)
  else None
}

使用空NodeSeq直接表达这个是更好的方法吗?

1 个答案:

答案 0 :(得分:3)

对于空NodeSeq使用NodeSeq.Empty

def maybeXml(param: Boolean): NodeSeq = {
  if(param) <someXml></someXml>
  else NodeSeq.Empty
}