2011-07-25 48 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) 
} 
相關問題