2014-06-17 62 views
-2

我想在web服務中創建一個方法,該方法可以接收已使用JAXB創建的Java類的對象並生成另一個Java類的對象(使用JAXB創建) )使用XSL文件,該文件定義了我用於JAXB的XML文件之間的關係。使用XSLT進行java-to-java轉換

任何幫助?

非常感謝您

+0

請閱讀關於提問的幫助 - http://stackoverflow.com/help/on-topic –

+0

您是否嘗試過使用XSLT變換器? – Priyesh

+0

嗨Priyesh,是的,我已經考慮過了。但我只找到了一個例子和指南,可以從XML文件或XML文件執行,而不是從Java類的一個實例到另一個Java類的新實例。有任何想法嗎? – user2417250

回答

1

你在正確的軌道上通過查看javax.xml.transform的API。一個Transformer需要它的輸入從實現Source並將其輸出發送到實現Result對象的對象,並且有支持你的用例JAXBSourceJAXBResult班後

MySourceJaxbClass sourceObject = // ... 
Transformer transformer = transformerFactory.newTransformer(xsltSource); 
JAXBContext context = // however you need to create your context 
Source src = new JAXBSource(context, sourceObject); 
JAXBResult res = new JAXBResult(context); 
transformer.transform(src, res); 

MyTargetJaxbClass resultObject = (MyTargetJaxbClass)res.getResult(); 

當然你不對於源和結果都必須使用相同的JAXBContext - 如果它們是不相關的類層次結構,則爲每個結構使用單獨的上下文可能更有意義。