将XML映射到Java中的对象
假设我有一个名为Test的类,就像这样
public class Test { private String testId; private String description; private String department; public Test() {} public Test(String id,String des,String dpt) { this.testId = id; this.department = dpt; this.description = des; } public String getTestId() { return testId; } public void setTestId(String testId) { this.testId = testId; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getDepartment() { return department; } public void setDepartment(String department) { this.department = department; } } 还包含一个XML字符串,其中包含Test类对象的数据. XML字符串是 <test> <testId>1</testId> <description>This is first test</description> <department>surgeon</department> </test> 现在我的任务是解析该XML字符串并创建Test类的对象,并将此XML中包含的所有数据放入该对象中.我正在使用JDOM进行XML解析.我想知道是否有任何解决方案可以将XML格式的所有数据直接复制到Test对象中? 现在我这样做:我解析XML字符串并逐个获取每个节点的数据,然后调用setter方法为Test类对象的每个字段设置数据.
简短回答:是的,有这样的解决方案.
它被称为“XML data binding“,或者称为“O / X Mapping”(对象/ XML映射)或“OXM”. 注意: Java自己的解决方案称为Java Architecture for XML Binding (JAXB).它是JSR 222描述的规范.JDK包含JAXB implementation,因此您(通常)不需要从JAXB Project home page下载独立的参考实现(RI). 注意: 有用的链接 > Java Architecture for XML 只是谷歌“JAXB教程”,有很多. 重要的提示: JAXB是一个规范,它有不同的实现(包括参考实现).但是这些传统的实现不能使用XPath,这很难过,因为使用XPath的重度嵌套的XML文件可以更加有效. EclipseLink MOXy提供了具有许多扩展的JAXB实现.其中一个是XPath based mapping.我发现它非常有用,当我参与其中一个涉及OXM的项目时. 以下是一些相关链接: > XPath Based (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |