代码:
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>