Java读取、创建xml(通过dom方式)

转载 2016年07月05日 10:14:27

Java读取、创建xml(通过dom方式)

创建一个接口

XmlInterface.java

public interface XmlInterface {
 
        /**
        * 建立XML文档
        * @param fileName 文件全路径名称
        */
        public void createXml(String fileName);
        /**
        * 解析XML文档
        * @param fileName 文件全路径名称
        */
        public void parserXml(String fileName);
}

接口实现

XmlImpl.java

package com.test.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 XmlImpl implements XmlInterface{
    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 class Main {
 
    public static void main(String args[]){
        XmlImpl dd=new XmlImpl();
        String str="D:/grade.xml";
        dd.init();
        dd.createXml(str);    //创建xml
        dd.parserXml(str);    //读取xml
    }
}

结果

生成xml

复制代码
<?xml version="1.0" encoding="GB2312"?>
<scores>
<employee>
<name>wangchenyang</name>
<sex>m</sex>
<age>26</age>
</employee>
</scores>
复制代码

读取xml

生成XML文件成功!
#text:
 
name:wangchenyang
#text:
 
sex:m
#text:
 
age:26
#text:
 
解析完毕


 

 

 

 

分类: J2SE, XML相关
标签: Java, 读取, xml, 创建
1
0
(请您对文章做出评价)
« 上一篇:Hibernate学习之一对一关联
» 下一篇:很长空格的String转换成Array数组

posted on 2011-08-23 14:34 重阳真人 阅读(31235) 评论(0) 编辑 收藏

</div>
<script type="text/javascript">var allowComments=true,isLogined=false,cb_blogId=95057,cb_entryId=2150530,cb_blogApp=currentBlogApp,cb_blogUserGuid='d6d4cfc4-3dc7-e011-8ee0-842b2b196315',cb_entryCreatedDate='2011/8/23 14:34:00';loadViewCount(cb_entryId);</script>

</div>

Java——DOM方式生成XML

学完了解析XML,就该学习生成XML文件了。首先学习的是如何使用DOM方式生成XML文件。使用DOM方式生成XML文件有如下几步:首先是创建DOM树(即规定XML文件中的内容): 创建Document...
  • u012325167
  • u012325167
  • 2016年03月21日 10:52
  • 11928

Java中DOM读取xml文件中的内容

import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; i...
  • Manketon
  • Manketon
  • 2015年02月28日 09:04
  • 1134

Java&Xml教程(四)使用DOM方式生成XML文件

在前面的教程中,我们学习了使用DOM解析方式读取和修改XML文件内容,今天我们来学习如何使用DOM解析机制生成XML文件。 下面是我们对要生成的XML文件的具体要求: 1.根节点元素为”Emplo...
  • Rongbo_J
  • Rongbo_J
  • 2015年12月10日 21:22
  • 1936

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历

java Dom 解析xml文档,实现xml文档结点的增删改查,遍历
  • yxmaomao1991
  • yxmaomao1991
  • 2016年03月23日 21:23
  • 2419

XML解析的两种方式:DOM方式和SAX方式

DOM:Document ObjectModel,文档对象模型。这种方式是W3C推荐的处理XML的一种方式。 SAX:Simple API for XML。这种方式不是官方标准,属于开源社区XML-D...
  • u012526194
  • u012526194
  • 2015年09月26日 14:17
  • 3342

Java读取、创建xml(通过dom方式)

http://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150530.html
  • tianshengwo123
  • tianshengwo123
  • 2014年05月16日 23:02
  • 246

Java之DOM,SAX,JDOM,DOM4J,四种解析xml方法比较

4种解析方式的比较 1.DOM解析    优点:a.形成了树结构,直观好理解,代码更易编写          b.解析过程中树结构保留在内存中,方便修改 缺点:         a.当xml...
  • qq_31028891
  • qq_31028891
  • 2016年08月13日 21:29
  • 1511

Java读取、创建xml(通过dom方式)

Java读取、创建xml(通过dom方式) 创建一个接口 XmlInterface.java ? public interface XmlInter...
  • ypfsoul
  • ypfsoul
  • 2013年08月30日 20:22
  • 546

Qt:利用DOM读写XML小测

Qt:利用DOM读写XML小测 //DOM写/修改XML: #include #include using namespace std; int main(int argc...
  • u010002704
  • u010002704
  • 2014年11月16日 01:08
  • 927

Java DOM解析XML的几个例子

Sample1: 1:新建XML文档 books.xml,放到项目的根目录下。 xml version="1.0" encoding="GB2312"?>    books  count="3" ...
  • John_Chang11
  • John_Chang11
  • 2017年02月14日 13:34
  • 1108
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java读取、创建xml(通过dom方式)
举报原因:
原因补充:

(最多只允许输入30个字)