請注意這個問題與返回0或1個元素(Node或Elem)嚴格相關。請不要將NodeSeq.Empty當作解決方案,因爲已經可以用於返回NodeSeq類型(0個或更多元素)的函數,如this question上解決的那樣。如何使用Scala XML返回空節點?
我建立使用不同的功能塊的XML,如下面的例子:
<xml>
{ maybeXmlNode(param) }
</xml>
而基於的價值試圖返回一個空或非空節點(或ELEM) PARAM如:
def maybeXmlNode(param: Boolean): NodeOrElem = {
if(param) <someXml></someXml>
else ??? //Empty or None doesn't work
}
我現在使用剛剛定義的函數類型選項[ELEM],然後用它作爲maybeXml.getOrElse(「」),但是,這並不讓那麼多的解決方案感覺到我。我現在的用法如下:
<xml>
{ maybeXmlNode(param).getOrElse("") }
</xml>
def maybeXmlNode(param: Boolean): Option[Elem] = {
if(param) Some(<someXml></someXml>)
else None
}
沒有一個更好的方式來表達這種存在,可能通過使用空節點或直接ELEM?
的可能的複製[如何返回使用Scala的XML空節點或NodeSeq?](http://stackoverflow.com/questions/36879390/how-to-return-empty-node- or-nodeseq-using-scala-xml) – Dima
昨天你不是已經問過同樣的問題嗎? http://stackoverflow.com/questions/36879390/how-to-return-empty-node-or-nodeseq-using-scala-xml?lq=1 – Dima
不,那一個是零到很多元素,這是嚴格一個或零個 – chaotive