处理dom比处理DOMContegory更好吗?
我正在尝试创建一个可以轻松使用dom节点的DSL。使用domcegory很好,但是增加了“use(domcegory)”的噪音。有没有办法避免这种情况处理dom比处理DOMContegory更好吗?,dom,groovy,categories,Dom,Groovy,Categories,我正在尝试创建一个可以轻松使用dom节点的DSL。使用domcegory很好,但是增加了“use(domcegory)”的噪音。有没有办法避免这种情况 我尝试将脚本调用包装在对“use”的调用中,但这在闭包中似乎不起作用 您可以使用groovy的runtimemixin功能来永久混合该类别。mixin将类别中的适用方法添加到类的元类中。将其应用于作为每个category方法的第一个参数出现的类和接口,该类别将可用,而无需将代码封装在use(domcegory)块中 例如: import org.
我尝试将脚本调用包装在对“use”的调用中,但这在闭包中似乎不起作用 您可以使用groovy的runtime
mixin
功能来永久混合该类别。mixin将类别中的适用方法添加到类的元类中。将其应用于作为每个category方法的第一个参数出现的类和接口,该类别将可用,而无需将代码封装在use(domcegory)
块中
例如:
import org.w3c.dom.*
import groovy.xml.DOMBuilder
import groovy.xml.dom.DOMCategory
[Node, NodeList, NamedNodeMap, DOMCategory.NodesHolder]*.mixin DOMCategory
def sampleXml = '''
<sample>
<someNode anAttribute='foo'>bar</someNode>
</sample>
'''
def sample = DOMBuilder.parse(new StringReader(sampleXml)).documentElement
println sample.someNode*.tagName
println sample.someNode[0].'@anAttribute'
println sample.someNode[0].attributes['anAttribute']
你能把你尝试过的不令人满意的东西放在问题中吗?
[someNode]
foo
foo