我有一个xml:
<Employee>
<name>xyz</name>
<age>50</age>
<salary>111</salary>
</Employee>
现在如何从这个xml中在jvm中动态创建一个类?如何为这个类创建setter / getter?
注意::以后这些xml元素会增加。
答案 0 :(得分:1)
通常,XML绑定的java源文件是使用某种XML模式或DTD生成的,用于预期的数据格式。
在这种情况下,建议是定义XML模式,例如:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://test.org/test/Employee">
<xsd:element name="employee">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
<xsd:element name="age" type="xsd:integer" />
<xsd:element name="salary" type="xsd:double" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
此schema.xsd可用作JAXB(xjc命令)或Castor等生成器的输入,如图所示here
生成器输出是可配置的,新的源应该易于集成到现有项目,或编译和加载。本主题将讨论here
答案 1 :(得分:0)
以下是使用JDOM2解析XML文件的示例
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
public class Test {
public static void main(String[] args) throws Exception {
Document document = new SAXBuilder().build(Test.class.getResourceAsStream("test.xml"));
for(Element elt :document.getRootElement().getChildren()) {
System.out.println("tag : "+elt.getName());
System.out.println("value : " + elt.getText()+"\n");
}
}
}
输出:
tag : name
value : xyz
tag : age
value : 50
tag : salary
value : 111
之后,你可以