Как преобразовать список элементов scala Xml в отдельные элементы scala? - PullRequest
2 голосов
/ 15 марта 2012

Итак, у меня есть

val list:List[Any];
def toElement(a:Any):scala.xml.Elem;

И я хочу написать что-то вроде

val result = <span> {list.map(toElement).toElem} <span>

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Если я вас правильно понял, я думаю, что вы ищете, может быть что-то вроде этого:

// List of different types
val list: List[Any] = List("one", 2, "three", 4:Long)

// Conversion function for type 'Any' - (note .toElem or .toXml isn't a
// member of 'Any' - so that's why we need to create this)
def toElement(a: Any): scala.xml.Elem = <hello>{ a.toString }</hello>

// Usage example
val result = <span>{ list.map( toElement(_) ) }</span>    

Но я думаю, что это действительно зависит от того, какого типа объекты вы ожидаете в списке, и от того, какие XML-элементы вы хотите, чтобы они выглядели в итоге.

0 голосов
/ 15 марта 2012

Просто идея ...

val list:List[Any] = List(1, 2, "test", 3.5)

def toElement(a:Any):scala.xml.Elem = {
  scala.xml.Elem(null, a.toString, scala.xml.Null, scala.xml.TopScope)
}

val result = <span> { list map toElement } </span>

приводит к

<span> <1></1><2></2><test></test><3.5></3.5> </span>

...