2011-07-25 42 views
0

我将一个XML文档从一个名称空间(和模式)转换为另一个名称空间。 JDOM允许我们调用Element.setNamespace()(它也处理元素的属性)。我可以用一个Groovy节点看最接近的是如何将Groovy节点对象的名称空间设置为另一个值?

myNode.name = new QName("http://my/new/namespace", myNode.name.localPart) 

但我不相信这是最好的方式 - 尤其是,它没有考虑属性的照顾。这甚至可能与节点?如果是这样,那么做到这一点的惯用方法是什么?

回答

0

我不能想办法离手......你可以只用JDOM虽然(转换成Groovy脚本from this example

@Grab(group='org.jdom', module='jdom', version='1.1') 
import org.jdom.* 
import org.jdom.input.* 
import org.jdom.output.* 

new SAXBuilder().build(new URL('http://cs.au.dk/~amoeller/XML/xml/recipes.xml')).with { document -> 
    def newDoc = new Element('collection').with { element -> 
    addContent document.rootElement.getChild('recipe', Namespace.getNamespace('http://recipes.org')).detach() 
    new Document(element) 
    } 
    new XMLOutputter().output(newDoc, System.out) 
} 
相关问题