我从Web服务调用中获取一个InputStream,并使用JAXB将其转换为对象,因此我不必解析xml。
对象包含一堆我不感兴趣的数据,以及我关心的数据,我想实例化一个自定义域模型类型对象。 例如,JAXB对象包含大约50个数据,分布在20个类中。 我想选择我关心的数据,大约10个数据,并使用10个数据实例化我的域模型类。
我必须使用Java 1.4,是否有我可以使用的框架,或者我应该迭代JAXB对象并获取我关心的数据然后实例化域模型并设置数据?
答案 0 :(得分:1)
使用JAXB 1.0
您可以将XSLT转换应用于文档,只关注您关注的信息。然后,您可以为此较小的文档创建XML架构,并从中生成对象模型。我在下面的相关问题的答案将让您了解javax.xml.transform API如何适应:
使用JAXB 2.0
如果您能够升级到Java SE 5,那么您可以利用JAXB 2.0。我领导EclipseLink JAXB (MOXy)实现,您可能对我们的XPath扩展感兴趣:
答案 1 :(得分:0)
编写一些自定义XPath查询以获取所需的字段将非常简洁。您可以将XPath作为xalan的一部分或我认为的一堆其他xml库:API Link
为了澄清(如果之前没有使用过XPath),XPath允许您编写一个简单的pathed查询来搜索xml文档。因此root/child/grandchild/
将返回子节点的值,该节点位于根节点下面的子节点下面。