zoukankan      html  css  js  c++  java
  • java通过dom创建和解析xml

    import java.io.FileNotFoundException; 
    import java.io.FileOutputStream; 
    import java.io.IOException; 
    import java.io.PrintWriter; 
    import javax.xml.parsers.DocumentBuilder; 
    import javax.xml.parsers.DocumentBuilderFactory; 
    import javax.xml.parsers.ParserConfigurationException; 
    import javax.xml.transform.OutputKeys; 
    import javax.xml.transform.Transformer; 
    import javax.xml.transform.TransformerConfigurationException; 
    import javax.xml.transform.TransformerException; 
    import javax.xml.transform.TransformerFactory; 
    import javax.xml.transform.dom.DOMSource; 
    import javax.xml.transform.stream.StreamResult; 
    import org.w3c.dom.Document; 
    import org.w3c.dom.Element; 
    import org.w3c.dom.Node; 
    import org.w3c.dom.NodeList; 
    import org.xml.sax.SAXException; 
    
    
    public class MyXmlTest{ 
        private Document document; 
      
        public void init() { 
            try { 
                DocumentBuilderFactory factory = DocumentBuilderFactory 
                        .newInstance(); 
                DocumentBuilder builder = factory.newDocumentBuilder(); 
                this.document = builder.newDocument(); 
            } catch (ParserConfigurationException e) { 
                System.out.println(e.getMessage()); 
            } 
        } 
      
        public void createXml(String fileName) { 
            Element root = this.document.createElement("scores");  
            this.document.appendChild(root);  
            Element employee = this.document.createElement("employee");  
            Element name = this.document.createElement("name");  
            name.appendChild(this.document.createTextNode("wangchenyang"));  
            employee.appendChild(name);  
            Element sex = this.document.createElement("sex");  
            sex.appendChild(this.document.createTextNode("m"));  
            employee.appendChild(sex);  
            Element age = this.document.createElement("age");  
            age.appendChild(this.document.createTextNode("26"));  
            employee.appendChild(age);  
            root.appendChild(employee);  
            TransformerFactory tf = TransformerFactory.newInstance(); 
            try { 
                Transformer transformer = tf.newTransformer(); 
                DOMSource source = new DOMSource(document); 
                transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312"); 
                transformer.setOutputProperty(OutputKeys.INDENT, "yes"); 
                PrintWriter pw = new PrintWriter(new FileOutputStream(fileName)); 
                StreamResult result = new StreamResult(pw); 
                transformer.transform(source, result); 
                System.out.println("生成XML文件成功!"); 
            } catch (TransformerConfigurationException e) { 
                System.out.println(e.getMessage()); 
            } catch (IllegalArgumentException e) { 
                System.out.println(e.getMessage()); 
            } catch (FileNotFoundException e) { 
                System.out.println(e.getMessage()); 
            } catch (TransformerException e) { 
                System.out.println(e.getMessage()); 
            } 
        } 
      
        public void parserXml(String fileName) { 
            try { 
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
                DocumentBuilder db = dbf.newDocumentBuilder(); 
                Document document = db.parse(fileName); 
                  
                NodeList employees = document.getChildNodes(); 
                for (int i = 0; i < employees.getLength(); i++) { 
                    Node employee = employees.item(i); 
                    NodeList employeeInfo = employee.getChildNodes(); 
                    for (int j = 0; j < employeeInfo.getLength(); j++) { 
                        Node node = employeeInfo.item(j); 
                        NodeList employeeMeta = node.getChildNodes(); 
                        for (int k = 0; k < employeeMeta.getLength(); k++) { 
                            System.out.println(employeeMeta.item(k).getNodeName() 
                                    + ":" + employeeMeta.item(k).getTextContent()); 
                        } 
                    } 
                } 
                System.out.println("解析完毕"); 
            } catch (FileNotFoundException e) { 
                System.out.println(e.getMessage()); 
            } catch (ParserConfigurationException e) { 
                System.out.println(e.getMessage()); 
            } catch (SAXException e) { 
                System.out.println(e.getMessage()); 
            } catch (IOException e) { 
                System.out.println(e.getMessage()); 
            } 
        } 
    //测试
    
      
        public static void main(String args[]){ 
        	MyXmlTest dd=new MyXmlTest(); 
            String str="D:/grade.xml"; 
            dd.init(); 
            dd.createXml(str);    //创建xml 
            dd.parserXml(str);    //读取xml 
        } 
    } 
    
  • 相关阅读:
    《基于大数据的高考志愿推荐系统的设计与实现》论文笔记(三)
    《高考志愿智能填报系统的设计与实现》论文笔记(二)
    一个简单但能考察C语言基础的题目
    C语言入坑指南-数组之谜
    八大排序算法
    vim学习
    C++/Python冒泡排序与选择排序算法详解
    Python查找最长回文暴力方法
    悬空指针与野指针
    二分查找
  • 原文地址:https://www.cnblogs.com/Nbge/p/2936232.html
Copyright © 2011-2022 走看看