用了一上午的时间,就实现了xpath的解释,类似这样的东西:a[@b==”1” and (c/@d==2 or e[f==”abc”])]。再加上Scala对函数对象的支持以及函数名的随意性,很容易就实现了对xml操作的扩展。除了Scala定义好的”\”,”\”,加入了”\%”来支持复杂的xpath,跟dom4j差不多了。真爽!
跟所有Lift的feature一样,支持REST也是非常非常得简单。 Mixin这个trait: 1 object AdminAPI extends RestHelper Boot.scala里面加上: ...
而且好用。模型非常简单,比该死的DOM好太多了。 Lexer的直接支持使得XML使用起来就像是写代码一样,这样可以直接把XSLT丢掉了。 目前还有些不是很好的地方,比如不能用变量作为tag的名字:<{tag_name}>,这样不行;再比如XPATH的支持还不全。不过好在可以implicit来增加新的方法,语法糖衣真是不错。
有什么好处呢?最直接的好处就是同一个node可以被多个xml共享,想想DOM是怎么处理这个的。 问题是一个简单的修改就需要重新建立一个完整的xml。Scala提供了BasictTransformer和RuleTransformer,再加上无敌的case匹配,可以方便地处理某类节点。 有个麻烦地地方,Scala-2.7.5的BasicTransformer有bug,只能用nightly或者...
Scala的XML处理非常强大
Scala的XML是只读的
Comments powered by Disqus.