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的方法 public static void createxml() throws Exception{ DocumentBuilderFactory  dbf=Do...
  • a1491758730
  • a1491758730
  • 2015-10-17 09:06:03
  • 1024

Java 应用DOM方式解析XML文件

引入java为啥需要解析XML的方法?xml的优势:它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或...
  • qq_23473123
  • qq_23473123
  • 2016-05-15 13:53:25
  • 2721

XML文件读取——DOM方式

XML文件的存储 XML文件是以树的结构存储的,一个XML文件就是一个倒着的树,有一个根节点。根节点下有好多个子节点,然后节点有自己的属性,在标签中和标签名空一格添加属性(属性也可以作为节点的子节...
  • fantiantianlucky
  • fantiantianlucky
  • 2016-06-22 17:02:53
  • 1167

使用DOM创建和写入xml文件

上一篇文章介绍了使用DOM解析xml文件的方式,这篇文章将介绍如何使用DOM创建和写入xml文件。 与xml的解析操作一样,在使用DOM创建和写入xml文件的时候,也需要获取一个DocumentBu...
  • a23qws
  • a23qws
  • 2015-02-21 13:34:30
  • 673

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

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

Java解析XML文件方法之一(DOM)

DOM的全称是Document Object Model,也即文档对象模型。在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树),应用程序正是通过对...
  • zp357252539
  • zp357252539
  • 2015-08-29 08:45:12
  • 1615

JAVA DOM生成和解析XML实例

XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。java操作XML时候有4中经典方法,本文将介绍DOM操作XML。并给出一个用DOM生成和解析XML的实例。 初始...
  • a1091220321
  • a1091220321
  • 2014-04-18 14:05:33
  • 3694

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

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

利用DOM解析和创建xml文件

XML解析器是指可以解析XML文件的程序 常见解析器有 1.     SAX解析器,用于XML的简单API 2.     DOM解析器,文档对象模型 文档对象模型就是利用对象来把文档模型化,这...
  • moonhelena
  • moonhelena
  • 2016-07-20 23:03:49
  • 531

Java使用DOM读写 XML

使用DOM对象处理XML XML文件 xml version="1.0" encoding="UTF-8"?>persons> person> name>Ass...
  • Al_assad
  • Al_assad
  • 2017-01-13 17:30:30
  • 349
收藏助手
不良信息举报
您举报文章:Java读取、创建xml(通过dom方式)
举报原因:
原因补充:

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