2
我建立使用不同的功能块的XML,如下面的例子:如何使用Scala XML返回空NodeSeq?
<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
}
是一种更好的方式来直接使用Empty NodeSeq来表示它吗?
谢谢,这样做的工作类型NodeSeq的功能。但是,我也有一个函数只返回一个节点的情况。我如何处理这种情况的任何想法? – chaotive
好吧,也许有一个更好的解决方案,但'Elem'是'Node'和'Node'是'NodeSeq',所以你可以创建一个函数返回'NodeSeq'像这样'def get(p:Boolean):NodeSeq =如果(p) else NodeSeq.Empty' –
不,这个问题是它迫使我改变严格返回0或1节点(节点类型)的东西的类型,到0到许多节点的可能序列(NodeSeq类型)。我的功能需要正确描述可能的结果。我已经为该主题思想创建了[另一个问题](http://stackoverflow.com/questions/36896156/how-to-return-empty-node-using-scala-xml)。 – chaotive