创建一个接口

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);    //创建xmldd.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:解析完毕

转载于:https://www.cnblogs.com/wangchenyang/archive/2011/08/23/2150530.html

Java读取、创建xml(通过dom方式)相关推荐

  1. Java读取证书的两种方式

    关于证书基础以及创建.查看.删除.导入.导出以及其他功能详解请参照:Java使用keytool创建CA证书 Java读取证书有两种方式 1.从文件中读取 public static void main ...

  2. Java 读取TXT文件的多种方式-行读取,字节读取

    Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; impor ...

  3. java 读取sql xml文件是否存在_java.oracle問題,如下,我看到一个XML文件有一个SQL。...

    一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件.package test; import java.io.ByteArrayOutputStream; impor ...

  4. java多线程 -- 创建线程的第三者方式 实现Callable接口

    Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一 ...

  5. XML解析(DOM方式)

    直接上例子. XML举例: <?xml version="1.0" encoding="UTF-8"?> <school> //XML结 ...

  6. Java读取配置文件的五种方式

    目录 一.ServletContext获取真实路径 二.通过ResourceBundle类获取配置文件资源 三.ClassLoader方式读取 四.使用Sping提供的PropertiesLoader ...

  7. java读取csv文件的多种方式

    csv文件的介绍 以下是来自百度百科的介绍 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和 ...

  8. java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...

  9. java— 读取JSON文件的多种方式

    大部分内容参考自: https://blog.csdn.net/csdn_halon/article/details/120287992 在开发过程中有时会遇到需要读取本地.json文件的需求,通常会 ...

  10. python将数据写入xml文件_python读取/创建XML文件

    Python中定义了很多处理XML的函数,如xml.dom,它会在处理文件之前,将根据xml文件构建的树状数据存在内存.还有xml.sax,它实现了SAX API,这个模块牺牲了便捷性,换取了速度和减 ...

最新文章

  1. hdu 5713(状态压缩DP)
  2. TBox Library
  3. 神经网络粒子和物理粒子的一个本质差别
  4. 禁止USB存储设备。
  5. 运行含中文的程序,打印名片
  6. [译] 什么阻塞了 DOM?
  7. Supervisor的作用与配置
  8. Java必知必会之socket
  9. 微信小程序字符头像,自定义任意字符头像,字符图片,avatar,利用minui
  10. caj转pdf的方法
  11. Android修炼之道—自定义控件 (300喵喵币)
  12. 漫谈程序员系列 薪资,你是我不能言说的伤
  13. Redhat Linux 8.3 安装方法
  14. 蓝桥杯及其搜索算法总结
  15. 微信域名防封浅谈之一
  16. moviepy音视频剪辑:视频半自动追踪人脸打马赛克
  17. 一个测试工程师应具备那些素质和技能?
  18. 有关weka的相关问题
  19. 芯洲电源,一款可以升压降压DCDC开关稳压电源,车规级面世,文章是参数详解
  20. 计算机视觉方向实习面试总结 (商汤 / 搜狗 / 纽劢 / 普华永道)

热门文章

  1. 用命令行方式获取打包签名文件的SHA1和MD5
  2. DevOps - Spring Boot自动部署到WebLogic
  3. 动手使用ABAP Channel开发一些小工具,提升日常工作效率
  4. 翻译 | 摆脱浏览器限制的JavaScript
  5. 【Java8精华教程】一起爪哇Java8——好用的Stream
  6. Javascript网页摇一摇
  7. 自动构建工具Grunt
  8. php http请求封装
  9. 细节:以为字符串不为空
  10. numpy中的ogrid