自动XML转换在Scala中的实现

5
假设我有以下类:
class Person(val firstName:String, val lastName:String)
是否有一种自动方式可以从该类生成xml,而无需手动创建toXml()方法?理想情况下,输出应该是这样的:
<Person> <firstName>John</firstName> <lastName>Smith</lastName> </Person>
看起来应该有一种不需要手动编写的方法。也许有一个特质我还没有发现?
2个回答

5
对于case类(或其他Product的子类),实现通用代码曾经非常容易:可以通过productPrefix来检索名称,可以通过productIterator遍历所有值,可以通过productElementName来获取字段的名称。
不幸的是,productElementName只存在了很短的时间:它在修订版20958中添加,但在修订版21223中被删除,似乎因为这会增加case类的负担(还有一个未解决的问题单)。

3
很遗憾,我认为没有这样的神奇特质。您可以使用类似XStream的工具来实现此目的。但是,它似乎不能自动漂亮地打印所有Scala类,因此您可能需要编写自己的转换器。其他人已经在列表的情况下做到了这一点,我想对于您的示例,您可能需要类似的东西。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接