- 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://www.codesnippet.cn/detail/161220138068.html
来源: http://www.codesnippet.cn/detail/161220138068.html