我有一个库,它使用回调到一个类中运行树结构。 简化的变体是:
class CallBack {
openGroup(name:String)
closeGroup(name:String)
item(name:String)
}
openGroup因此在树中执行一步,closeGroup跳出并且item是叶子。 我想要的是创建一个简单的xml结构 当我浏览代码时。一个天真的解决方案就是简单 做类似下面的伪代码:
class CallBack {
var xml:String = ""
openGroup(name:String) = { xml += "<ol label=" + name + ">"}
closeGroup(name:String) = { xml += "</ol>" }
item(name:String) = { xml += "<li name=.... />" }
}
我想一个更好的解决方案是使用Node:s,Groups等创建它, 或其他相关技术然后创建xml。
你知道如何以一种不错的方式从上面创建xml吗?
答案 0 :(得分:1)
如果您使用JATL,它看起来像
class CallBack(writer: Writer) {
private val html = new Html(writer)
def openGroup(name:String) = html.ol.label(name)
def closeGroup(name:String) = html.end
def item(name:String) = html.li.label(name).end
}