dom4j操作xml,dom4jxml,static Strin
分享于 点击 3199 次 点评:15
dom4j操作xml,dom4jxml,static Strin
static String xmlPath= "xmlFile.xml"; public static void createXML() {//完成基本的xml要素的生成,以及最后xml文件的存储 Document doc= DocumentHelper.createDocument(); Element root= doc.addElement("root"); setBeanValue(root); try { FileOutputStream output= new FileOutputStream(xmlPath);//也可以通过writer来添加但是注意乱麻问题要 XMLWriter xWriter= new XMLWriter(output, OutputFormat.createPrettyPrint());//对xml文件进行格式化 xWriter.write(doc); output.flush(); xWriter.flush(); output.close(); xWriter.close(); } catch (IOException e) { e.printStackTrace(); } } public static void setBeanValue(Node parentNode) {//对具体的节点的生成 Person[] persons= new Person[3]; for(int i= 0; i< persons.length; i++) { persons[i]= new Person(); persons[i].setAge(i+""); persons[i].setSex("男"); } Element personsNode= ((Element)parentNode).addElement("persons"); for(int i= 0;i< 3; i++) { Element person = personsNode.addElement("person"); Element age= person.addElement("age"); Element sex= person.addElement("sex"); setXMLValue(age, persons[i]); setXMLValue(sex, persons[i]); } } public static void setXMLValue(Node nodeName, Object obj) {//通过反射获取具体的属性值 Class<Person> classType= (Class<Person>) obj.getClass(); try { Field filed= classType.getDeclaredField(nodeName.getName()); filed.setAccessible(true); nodeName.setText(filed.get(obj)+""); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchFieldException e) { e.printStackTrace(); } } public static void parserXML() { SAXReader reader= new SAXReader(); try { InputStream input= new FileInputStream(xmlPath); Document doc= reader.read(input); Element root= doc.getRootElement(); Iterator<Element> it= root.elementIterator(); while(it.hasNext()) { Element element= it.next(); readNode(element); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e) { e.printStackTrace(); } } public static void readNode(Node node) { Element element= (Element)node;//persons Iterator<Element> childElement= element.elementIterator(); while(childElement.hasNext()) {//person Element ele= childElement.next();//age sex if(ele.elementIterator()!= null) { if(!"".equals(ele.getText().trim())) { System.out.println(ele.getName()+"-->"+ele.getText().trim()); } readNode(ele); } } } public static void main(String[] A) { createXML();//生成xml parserXML();//解析xml }}//该片段来自于http://byrx.net
用户点评