zoukankan      html  css  js  c++  java
  • Dom4j操作xml

    package com.kk.xml;
    
    import java.io.*;
    import java.util.*;
    
    import org.dom4j.*;
    import org.dom4j.io.*;
    
    public class OperateXML {
    
        /**
         * @param args
         * @throws IOException 
         * @throws DocumentException 
         */
        public static void main(String[] args) throws IOException, DocumentException {
            generateXML();
            parseXMLFromString();
        }
    
        /**
         * 将生成的xml以字符串形式打印
         * @throws IOException
         */
        private static void generateXML() throws IOException {
            Document document=DocumentHelper.createDocument();
            Element message=document.addElement("message");
            message.addAttribute("type", "GetAllDefence");
            Element students=message.addElement("students");
            for(int i=0;i<10;i++){
                Element student=students.addElement("student");
                student.addElement("name").setText("my name is"+i);
                student.addElement("gender").setText("男");
            }
            System.out.println(document.asXML());
        }
        
        /**
         * 将生成的xml以字符串形式打印(字节流)
         * @throws IOException
         */
        private static void generateXMLByStream() throws IOException {
            Document document=DocumentHelper.createDocument();
            Element message=document.addElement("message");
            message.addAttribute("type", "GetAllDefence");
            Element students=message.addElement("students");
            for(int i=0;i<10;i++){
                Element student=students.addElement("student");
                student.addElement("name").setText("my name is"+i);
                student.addElement("gender").setText("男");
            }
            OutputStream os=new ByteArrayOutputStream();
            OutputFormat format=OutputFormat.createPrettyPrint();
            format.setEncoding("utf-8");
            XMLWriter output=new XMLWriter(os,format);
            output.write(document);
            output.close();
            String str=os.toString();
            os.close();
            System.out.println(str);        
        }
        
        private static void parseXMLFromFile() throws DocumentException{
            SAXReader reader=new SAXReader();
            Document document=reader.read("students.xml"); //读流
            Element root=document.getRootElement(); //message
            //for(Iterator it=root.selectNodes("//students/student").iterator();it.hasNext();){ //xpath方式,需要jaxen.jar
            for(Iterator it=root.element("students").elementIterator("student");it.hasNext();){
                Element student=(Element) it.next();
                System.out.println(student.elementTextTrim("name"));
                System.out.println(student.elementTextTrim("gender"));
            }
        }
        
        private static void parseXMLFromString() throws DocumentException{
            String xml="<?xml version=\"1.0\" encoding=\"gbk\"?>"
                        +"<message type=\"GetAllDefence\">"
                        +"<students>"
                        +"<student num=\"0\">"
                        +"<name>my name is0</name>"
                        +"<gender>男</gender>"
                        +"</student>"
                        +"</students>"
                        +"</message>";
            Document document=DocumentHelper.parseText(xml); //读字符串
            Element root=document.getRootElement(); //message
            for(Iterator it=root.element("students").elementIterator("student");it.hasNext();){
                Element student=(Element) it.next();
                System.out.println(student.elementTextTrim("name"));
                System.out.println(student.elementTextTrim("gender"));
            }
        }
    
    }
  • 相关阅读:
    C#无限分级实现,前端WEB页面接收,后台提供层级Json数据
    消息队列、OSS常用操作封装
    ABP增删改查代码片段
    WebApi实现验证授权Token,WebApi生成文档等
    项目收集-AutoMapper使用,事务,Json.Net序列化反序列化,代码生成调用等
    ssi服务器端指令详解(shtml)
    Linq常用List操作总结,ForEach、分页、交并集、去重、SelectMany等
    81.Search in Rotated Sorted Array II---二分变形
    48.Rotate Image
    89.Gray Code
  • 原文地址:https://www.cnblogs.com/BigIdiot/p/2600906.html
Copyright © 2011-2022 走看看