public class XmL2Class { public static void main(String[] args) { XmL2Class.read1(); } public static void read1() { try { System.out.println("开始创建"); SAXReader reader = new SAXReader(); InputStream in = XmL2Class.class.getClassLoader().getResourceAsStream("test.xml"); Document doc = reader.read(in); Element root = doc.getRootElement(); File file=new File("D:/"+XmL2Class.getClassName(root.getName())+".java"); String str="public class "+XmL2Class.getClassName(root.getName())+" {\r\n"; // XPath List<Element> attrs=doc.selectNodes("/"+root.getName()+"/*"); for (Element attr : attrs) { str=str+attr.attributeValue("type")+" "+attr.getName()+";\r\n"; } str+="\r\n}"; OutputStream out=null; out=new FileOutputStream(file); out.write(str.getBytes()); out.flush(); out.close(); System.out.println("完成创建"); } catch (Exception e) { e.printStackTrace(); } } public static String getClassName(String className){ return className.substring(0, 1).toUpperCase()+className.substring(1); } }
<?xml version="1.0" encoding="UTF-8"?> <university > <student type="Stuent"> </student> <id type="int"> </id> </university>
控制台:public class University { Stuent student; int id; }
需要导入dom4j-1.6.1.jar,jaxen-1.1-beta-6.jar 某个节点下面的同类节点的一个获取方法: /root/model[@type='a']/* :在root根节点下面多个model节点中type=a的下面的所有节点。
写给自己的笔记,胡思乱想
最新推荐文章于 2015-03-19 17:31:46 发布