我在几个项目中都使用过XStream。不幸的是,您的问题并不是XStream真正要解决的问题。您也许可以使用其转换器机制来实现您的近期目标,但是会遇到限制。简而言之,XStream并非旨在将树结构A转换为树结构B
-其目的是将Java域模型转换为某种合理的XML。当您不太在乎所生成的XML的细节时,XStream是一个很好的工具。如果您比Java对象更关心XML,请看一下XMLBeans
- Java很丑陋,但是它非常符合模式。
对于您的项目,我将通过XML bean运行Google
XML架构,生成一些Java,这将为您提供一种更熟练的手动编码转换器的方法。您可以使用原始的DOM树,但是您将拥有类似于myAddress.setStreet(root.getFirstChild()。getAttribute(“
addr1”))))的代码。使用XML
Bean,您可以说出myAddress.setStreet(googleResult.getAddress()。getStreetName();
我会忽略JAXB,因为它试图将接口与实现分离开来会增加不必要的复杂性。Castor也可能是一个不错的工具,但是我已经好几年没有使用它了。
简而言之,没有很多好的对象到对象或XML到对象的转换器可以很好地处理结构转换。在我看到的尝试声明式解决方案的解决方案中,它们似乎都比使用XStream /
XmlBeans以及手工编码的结构转换要复杂得多(并且不再可维护)。



