2

我知道用 pojo 生成 xml 我可以做这样的事情,

    class Person(name : String, age : Int){
        def toXml() = <person><name>{ name }</name><age>{ age }</age></person>;
    }

问题是如果name = null,我会有

    <person><name></name><age>8</age></person>

当真的,当值为空时,我希望节点是瞬态的

    <person><age>8</age></person>

有没有一种干净的方法可以做到这一点?谢谢。

4

2 回答 2

1

以下代码适用于我。

<person>{if(name != "")  <name>{name}</name>}</person>

干杯

于 2011-12-02T09:13:37.020 回答
0

如果 name 可以为 null,另一种(更实用?)方法是使用 Option:

class Person(name : Option[String], age : Int){
  def toXml() = <person>{name map {x=> <name>{x}</name>} getOrElse(<name/>)} <age>{ age }</age></person>;
}

我很确定它可以不那么冗长,但优点是您指定该名称是可选的,然后类型检查器将强制处理它。使用纯字符串,您需要自己记住空值检查。

于 2011-12-03T21:23:07.570 回答