我正在使用不同的函数(如以下示例)逐段构建XML:

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

并尝试根据参数的值返回空的或非空的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更好地表达这一点吗?

最佳答案

对于空的NodeSeq使用NodeSeq.Empty

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

关于xml - 如何使用Scala XML返回空的NodeSeq?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36879390/

10-14 19:51