处理dom比处理DOMContegory更好吗?

处理dom比处理DOMContegory更好吗?,dom,groovy,categories,Dom,Groovy,Categories,我正在尝试创建一个可以轻松使用dom节点的DSL。使用domcegory很好,但是增加了“use(domcegory)”的噪音。有没有办法避免这种情况 我尝试将脚本调用包装在对“use”的调用中,但这在闭包中似乎不起作用 您可以使用groovy的runtimemixin功能来永久混合该类别。mixin将类别中的适用方法添加到类的元类中。将其应用于作为每个category方法的第一个参数出现的类和接口,该类别将可用,而无需将代码封装在use(domcegory)块中 例如: import org.

我正在尝试创建一个可以轻松使用dom节点的DSL。使用domcegory很好,但是增加了“use(domcegory)”的噪音。有没有办法避免这种情况


我尝试将脚本调用包装在对“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