XML生成与读取

package vedio.webservice;

import java.io.IOException;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.XMLWriter;

public class XmlUtil {
    public static void main(String[] args) {
        System.out.println(createXml());
        readXml(createXml());
    }
    public static String createXml(){
        //根元素
        Element root = DocumentHelper.createElement("student");
        //创建文档
        Document document = DocumentHelper.createDocument(root);
        //添加属性
        root.addAttribute("name","zs");
        Element child1 = root.addElement("hello");
        Element child2 = root.addElement("word");
        
        child1.setText("hello Text");
        child2.setText("word Text");
        // 输出
        // 输出到控制台
        XMLWriter xmlWriter = new XMLWriter();
        try {
            xmlWriter.write(document);
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println();
        System.out.println("------------------");
        
//     // 输出到文件
//        // 格式
//        OutputFormat format = new OutputFormat("    ", true);// 设置缩进为4个空格,并且另起一行为true
//        XMLWriter xmlWriter2 = new XMLWriter(
//                new FileOutputStream("student.xml"), format);
//        xmlWriter2.write(document2);
//
//        // 另一种输出方式,记得要调用flush()方法,否则输出的文件中显示空白
//        XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("student2.xml"),
//                format);
//        xmlWriter3.write(document2);
//        xmlWriter3.flush();
        
//        <?xml version="1.0" encoding="UTF-8"?>
//        <student name="zs"><hello>hello Text</hello><word>word Text</word></student>
        
        return document.asXML();
    }
    
    public static void readXml(String sxml){
        try {
//            解析xml文件
//             SAXReader saxReader = new SAXReader();
//
//            Document document = saxReader.read(new File("students.xml"));
            
            //解析xml字符串
            Document document = DocumentHelper.parseText(sxml);
            Element root = document.getRootElement();
            System.out.println(root.getName());
            List<Element> children = root.elements();
            System.out.println(children.size());
             // 获取特定名称的子元素
            List<Element> childList2 = root.elements("hello");
            System.out.println("hello child size: " + childList2.size());

            // 获取名字为指定名称的第一个子元素
            Element firstWorldElement = root.element("world");
            // 输出其属性
//            System.out.println("first World Attr: "
//                    + firstWorldElement.attribute(0).getName() + "="
//                    + firstWorldElement.attributeValue("name"));
            
         // 迭代输出
            for (Iterator iter = root.elementIterator(); iter.hasNext();)
            {
                Element e = (Element) iter.next();
//                System.out.println(e.attributeValue("name"));
                System.out.println(e.getText());

            }  
        } catch (DocumentException e) {
            e.printStackTrace();
        }
        
    }
    


}

 

//参考资料http://www.cnblogs.com/mengdd/archive/2013/06/05/3119927.html

posted @ 2017-06-05 18:19  javadongx  阅读(129)  评论(0)    收藏  举报

javadong@qq.com