java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件
Java 如何使用dom方式读取和创建xml文件
发布时间:2020-11-11 17:08:31
来源:亿速云
阅读:101
作者:Leah
本篇文章给大家分享的是有关Java 如何使用dom方式读取和创建xml文件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Java 利用dom方式读取、创建xml详解
1.创建一个接口
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
wangchenyang
m
26
读取xml
生成XML文件成功!
#text:
name:wangchenyang
#text:
sex:m
#text:
age:26
#text:
解析完毕
以上就是Java 如何使用dom方式读取和创建xml文件,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
java dom创建xml文件_Java 如何使用dom方式读取和创建xml文件相关推荐
- JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)
该篇博客目录 1.Map接口及其常用实现类(HashMap.Hashtable) 2.File类(概述.创建.删除.重命名.文件属性读取/设置.遍历文件夹) 一.Map接口及其常用实现类(HashMa ...
- java用输入流创建数据文件_java开发知识IO知识之输入输出流以及文件
java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用 ...
- java post返回xml数据类型_Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据...
这里面简单介绍下,HttpURLConnection连接服务器,并返回数据 客户端代码Java代码: import java.io.InputStream; import java.io.Output ...
- java持久层用文件_JAVA中用三种方法将字符串持久化到文件中
经常需要将数据进行持久化,而我们的文件系统是最古老也是最可靠的保存方式.这里就给出一个在JAVA中把字符串保存到文件中的例子.如下: package test.base; import java.io ...
- java post xml数据_Java发HTTP POST请求(内容为xml格式)
Java发HTTP POST请求(内容为xml格式) 一.POST请求 服务器地址:http://5.0.217.50:17001/VideoSend 服务器提供的是xml格式的http接口,接口定义 ...
- springboot读取src下文件_java(包括springboot)读取resources下文件方式
1.使用项目内路径读取,该路径只在开发工具中显示,类似:src/main/resources/resource.properties.只能在开发工具中使用,部署之后无法读取. File file = ...
- pr 文件结构不一致_premiere导入文件的文件结构中存在不一致 已禁止读取和写入此文件的元数据...
展开全部 1.先将csv文件分bai别读出, 然后写入一du个H5文件zhi当中dao. 对外只有一个H5文件,内部,实际可装版入多个csv文件. 2.因为权 csv文件包括汉字,因此可以通过enco ...
- 文件或目录损坏且无法读取?正确恢复文件的4个方法
你有没有遇到过"文件损坏已无法读取"的提示窗口?相信使用电脑的你,或多或少都会遇到过,尤其是我们使用硬盘或者移动硬盘的时候. 遇到这种问题,我们第一时间不是按照系统提示去删除或者格 ...
- mfc 获得服务器文件信息,VC编程之VC 读取服务器上的文件(HTTP方式)
本文主要向大家介绍了VC编程之VC 读取服务器上的文件(HTTP方式),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. CString GetStringFromUrl(LPCTSTR p ...
最新文章
- 【简明书】机器学习用例书册
- 【Matlab 控制】Simulink仿真+S函数例子
- Maven-EclipseEE使用Maven构建Java web项目从0到1
- Django从理论到实战(part33)--表关系
- ArcGIS API for Silverlight中legend控件显示图例问题
- python中函数分为哪四类_Python函数参数分类原理详解
- [李景山php]每天TP5-20161225|thinkphp5-Console.php-2
- SpringBoot目录
- Box2D——入门教程
- 在Linux安装QQ,只需几步
- Andorid性能优化之traceview的使用(不懂揍我)
- 漂浮广告代码、漂浮代码分析(讲解)
- oracle 独占更新,Oracle的共享封锁 独占封锁和共享更新封锁 (3)
- 【Win8操作系统中OEM分区创建技巧】
- Nape 碰撞检测事件 笔记
- Converting circular structure to JSON
- 远程桌面分辨率取决于服务器还是客户端,关于Windows8.1高分辨率,远程桌面连接的界面显示很小的问题~...
- ENVI:标准库中光谱(.sli)重采样
- 送书|逆向系列-你一定要懂的MD5加密
- js使用canvas画五角星以及渐变色,瞎画
热门文章
- 浙江省高等学校计算机等级考试有什么用,06秋年秋浙江省高等学校计算机等级考试试卷(三级数据库技术及应用)...
- php 随机在文章中添加锚文本_页面SEO优化的锚文本优化概念
- php获取悉尼时间,php在使用澳大利亚/悉尼时区时给出错误答案
- 限定概率抽奖_守护星已点亮,内测皮肤得到没?从天美抽奖概率分析:地址什么梗...
- js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题
- 领航机器人广告段子_医院机器人物流广告词_段子网收录最新段子
- profile 安卓work_androidWorkProfileGeneralDeviceConfiguration 资源类型
- c语言二进制数怎么表示_搞懂这些公式和原理,二级C语言对你来说肯定会简单很多!...
- LSGO软件技术团队2015~2016学年第二周(0907~0912)总结
- 【转】dicom通讯的工作方式及dicom标准简介!!