代碼:
package test3;
import org.w3c.dom.*;
import org.xml.sax.SAXException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.IOException;
public class move {
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException, ClassNotFoundException, IllegalAccessException, InstantiationException, NoSuchFieldException {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse("/Users/caohao/IdeaProjects/threadlearn/src/main/resources/test1.xml");
Element documentElement = document.getDocumentElement();
NodeList childNodes = documentElement.getChildNodes();
for (int i = 0; i < childNodes.getLength(); i++) {
Node item = childNodes.item(i);
if (item instanceof Element){
Element element = (Element) item;
String id = element.getAttribute("id");
String aClass = element.getAttribute("class");
Class<?> target = Class.forName(aClass);
Object newInstance = target.newInstance();
NodeList property = element.getElementsByTagName("property");
for (int j = 0; j <property.getLength() ; j++) {
Node node = property.item(j);
if (node instanceof Element){
Element propertyElement = (Element) node;
String name = propertyElement.getAttribute("name");
System.out.println(name);
String value = propertyElement.getAttribute("value");
System.out.println(value);
target.getDeclaredField(name).set(newInstance,value);
}
}
beantest beantest = (test3.beantest) newInstance;
System.out.println(beantest.toString());
}
}
}
}
class beantest{
String name;
String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "beantest{" +
"name='" + name + '\'' +
", password='" + password + '\'' +
'}';
}
}
xml:
<bean id="beantest" class="test3.beantest">
<property name="name" value="caohao"></property>
<property name="password" value="sss"></property>
</bean>