在scala中自动进行xml转换

时间:2010-06-08 03:44:41

标签: scala

假设我有以下课程:

class Person(val firstName:String,val lastName:String)

是否有自动方法从此类生成xml而无需手动创建toXml()方法?理想情况下,输出将类似于:

    <Person>
        <firstName>John</firstName>
        <lastName>Smith</lastName>
    </Person>

似乎应该有一种方法可以做到这一点,而无需手动编写所有这些。也许有一个我还没有找到的特质?

2 个答案:

答案 0 :(得分:5)

对于case类(或Product的其他子类),这通常很容易编写:可以使用productPrefix检索名称,所有值都可以通过{{进行迭代1}}和productIterator字段的名称。

不幸的是,productElementName只有很短的生命:它已添加到revision 20958并在revision 21223中删除,显然是因为它给案例类增加了太多的重量(还有一个open ticket为此。)

答案 1 :(得分:3)

不幸的是,我不认为有这样一个神奇的特质。您可以使用XStream之类的东西来完成此任务。但是,它似乎并不会自动打印所有Scala类,因此您可能需要编写自己的转换器。 Someone else在列表的情况下已经这样做了,我想你的例子可能需要类似的东西。