2011-05-25 24 views
3

我正在嘗試使用GroovyWS,希望完全替代Axis2客戶端代碼。我可以直接在w3c.dom.Node對象上使用XmlSlurper

我調用的Webservice操作之一返回了XML片段,我需要將它轉換爲Groovy Beans。

我收到了來自WebService調用的com.sun.org.apache.xerces.internal.dom.ElementNSImpl的實例。

我可以撥打new XmlSlurper().parseText(it as String)其中itElementNSImpl的實例。

但是,當然這會在重新分析和誹謗它之前將元素寫出到字符串中。有沒有辦法避免這個不必要的步驟?

最終,我想將sl object的對象變成Groovy Bean;有一個更好的方法嗎。我想知道DomToGroovy,但是這仍然給了我一個字符串,然後我運行在Groovy Shell中。

回答

1

我不認爲XmlSlurper支持這種直接轉換,你可能必須自己寫一些東西。也許如果你深入到XmlSlurper源代碼中,可以通過擴展和添加一個新的parse()方法來實現。否則,除非你有重大的性能問題,否則我會說你正處在正確的軌道上。

+0

是的,我需要創建一個GPathResult,但它不會接受ElementNSImpl實例,所以我必須將其轉換爲它將接受的對象;也許我可以寫一個接口適配器來做到這一點,但它聽起來像很多麻煩。更容易與字符串轉換生活.... – 2011-05-25 21:00:56

相關問題