Adding an XML attribute depending on an Option से संबंधित, मैं एक विकल्प के आधार पर स्कैला में एक एक्सएमएल टैग जोड़ना चाहता हूं।स्कैला में किसी विकल्प के आधार पर, मैं XML टैग कैसे जोड़ूं या नहीं?
scala> def toXml(value1: String, value2: Option[String]) =
| <body>
| <tag1>{value1}</tag1>
| {value2 map (x => <tag2>{x}</tag2>) flatten}
| </body>
toXml: (value1: String,value2: Option[String])scala.xml.Elem
ऑप्शन मौजूद है:
scala> toXml("value1", Some("value2"))
res1: scala.xml.Elem =
<body>
<tag1>value1</tag1>
<tag2>value2</tag2>
</body>
, तो विकल्प मौजूद नहीं है:
scala> toXml("value1", None)
res2: scala.xml.Elem =
<body>
<tag1>value1</tag1>
</body>
मैं एक विकल्प के आधार पर टैग का एक बहुत उत्पन्न करना चाहते हैं, मैं सोच रहा था कि क्या एक और संक्षिप्त समाधान पाया जा सकता है। उदाहरण के लिए, एलेम क्लास के साथ पंपिंग? ऑपरेटर और इस तरह इसका इस्तेमाल (? यह है विकल्प मान 2 के बाद से एक गंदा समाधान से पहले एक स्ट्रिंग में बदल जाती है ऑपरेटर कहा जाता है):
scala> def toXml2(value1: String, value2: Option[String]) =
| <body>
| <tag1>{value1}</tag1>
| {<tag2>{value2}</tag2>?}
| </body>
किसी भी विचार?
धन्यवाद उत्तर के लिए ऐनी, यह स्पष्ट है कि मेरे मानचित्र का उपयोग और फ़्लैटन। हालांकि मैं प्रतिलिपि बनाने और चिपकाने से बचाना चाहता हूं, प्रत्येक विकल्प के लिए परिभाषित परीक्षण है। मैं एक समाधान की तलाश में हूं जहां कोड लगभग एक्सएमएल आउटपुट की तरह दिखता है। –