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); //创建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方式)相关推荐
- Java读取证书的两种方式
关于证书基础以及创建.查看.删除.导入.导出以及其他功能详解请参照:Java使用keytool创建CA证书 Java读取证书有两种方式 1.从文件中读取 public static void main ...
- Java 读取TXT文件的多种方式-行读取,字节读取
Java 读取TXT文件的多种方式 1).按行读取TXT文件 package zc; import java.io.BufferedReader; import java.io.File; impor ...
- java 读取sql xml文件是否存在_java.oracle問題,如下,我看到一个XML文件有一个SQL。...
一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件.package test; import java.io.ByteArrayOutputStream; impor ...
- java多线程 -- 创建线程的第三者方式 实现Callable接口
Java 5.0 在 java.util.concurrent 提供了一个新的创建执行线程的方式:Callable 接口 Callable 接口类似于 Runnable,两者都是为那些其实例可能被另一 ...
- XML解析(DOM方式)
直接上例子. XML举例: <?xml version="1.0" encoding="UTF-8"?> <school> //XML结 ...
- Java读取配置文件的五种方式
目录 一.ServletContext获取真实路径 二.通过ResourceBundle类获取配置文件资源 三.ClassLoader方式读取 四.使用Sping提供的PropertiesLoader ...
- java读取csv文件的多种方式
csv文件的介绍 以下是来自百度百科的介绍 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和 ...
- java读取src xml文件路径_Java获取路径方法相对路径读取xml文件方法
(1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI ...
- java— 读取JSON文件的多种方式
大部分内容参考自: https://blog.csdn.net/csdn_halon/article/details/120287992 在开发过程中有时会遇到需要读取本地.json文件的需求,通常会 ...
- python将数据写入xml文件_python读取/创建XML文件
Python中定义了很多处理XML的函数,如xml.dom,它会在处理文件之前,将根据xml文件构建的树状数据存在内存.还有xml.sax,它实现了SAX API,这个模块牺牲了便捷性,换取了速度和减 ...
最新文章
- hdu 5713(状态压缩DP)
- TBox Library
- 神经网络粒子和物理粒子的一个本质差别
- 禁止USB存储设备。
- 运行含中文的程序,打印名片
- [译] 什么阻塞了 DOM?
- Supervisor的作用与配置
- Java必知必会之socket
- 微信小程序字符头像,自定义任意字符头像,字符图片,avatar,利用minui
- caj转pdf的方法
- Android修炼之道—自定义控件 (300喵喵币)
- 漫谈程序员系列 薪资,你是我不能言说的伤
- Redhat Linux 8.3 安装方法
- 蓝桥杯及其搜索算法总结
- 微信域名防封浅谈之一
- moviepy音视频剪辑:视频半自动追踪人脸打马赛克
- 一个测试工程师应具备那些素质和技能?
- 有关weka的相关问题
- 芯洲电源,一款可以升压降压DCDC开关稳压电源,车规级面世,文章是参数详解
- 计算机视觉方向实习面试总结 (商汤 / 搜狗 / 纽劢 / 普华永道)