2016-04-27 2 views
0

この質問は、0または1要素(ノードまたはエレメント)を返すことに厳密に関連していることに注意してください。解決策として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 
} 

私が今使っているだけでmaybeXml.getOrElse(「」)としてそれを使用して、オプション[Elemの]としての機能の種類を定義しているが、それはそれほどせないソリューション私に感覚。私の現在の使用法は次の通りです:

おそらく空ノードまたはElemを直接使って表現する方が良いでしょうか?

+0

可能な重複[ScalaのXMLを使用して空のノードまたはNodeSeqを返す方法?](http://stackoverflow.com/questions/36879390/how-to-return-empty-node- or-nodeseq-using-scala-xml) – Dima

+0

あなたは既に昨日同じ質問をしていませんか? http://stackoverflow.com/questions/36879390/how-to-return-empty-node-or-nodeseq-using-scala-xml?lq=1 – Dima

+0

いいえ、それは約0から多くの要素であり、これは厳密に1またはゼロ – chaotive

答えて

0

てみ

<xml>{maybeXmlNode(param).getOrElse(new NodeBuffer())}</xml> 
+0

これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](/レビュー/低品質の投稿/ 14387336) – Wildcat

+0

これは良い点です。ノードは抽象的な要素であり、要素にはラベルが必要であるため、空の要素やノードのようなものはないと思います。したがってオプションは、1つ以上の概念を含まないゼロまたは1つの概念を表します。 – user1763729

関連する問題