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文件相关推荐

  1. JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)

    该篇博客目录 1.Map接口及其常用实现类(HashMap.Hashtable) 2.File类(概述.创建.删除.重命名.文件属性读取/设置.遍历文件夹) 一.Map接口及其常用实现类(HashMa ...

  2. java用输入流创建数据文件_java开发知识IO知识之输入输出流以及文件

    java开发知识IO知识之输入输出流以及文件 一丶流概述 流十一组有序的数据序列.根据操作的类型,可以分为输入流跟输出流两种. IO(input/output)输入/输出流提供了一条通道程序.可以使用 ...

  3. java post返回xml数据类型_Java 通过HttpURLConnection Post方式提交xml,并从服务端返回数据...

    这里面简单介绍下,HttpURLConnection连接服务器,并返回数据 客户端代码Java代码: import java.io.InputStream; import java.io.Output ...

  4. java持久层用文件_JAVA中用三种方法将字符串持久化到文件中

    经常需要将数据进行持久化,而我们的文件系统是最古老也是最可靠的保存方式.这里就给出一个在JAVA中把字符串保存到文件中的例子.如下: package test.base; import java.io ...

  5. java post xml数据_Java发HTTP POST请求(内容为xml格式)

    Java发HTTP POST请求(内容为xml格式) 一.POST请求 服务器地址:http://5.0.217.50:17001/VideoSend 服务器提供的是xml格式的http接口,接口定义 ...

  6. springboot读取src下文件_java(包括springboot)读取resources下文件方式

    1.使用项目内路径读取,该路径只在开发工具中显示,类似:src/main/resources/resource.properties.只能在开发工具中使用,部署之后无法读取. File file = ...

  7. pr 文件结构不一致_premiere导入文件的文件结构中存在不一致 已禁止读取和写入此文件的元数据...

    展开全部 1.先将csv文件分bai别读出, 然后写入一du个H5文件zhi当中dao. 对外只有一个H5文件,内部,实际可装版入多个csv文件. 2.因为权 csv文件包括汉字,因此可以通过enco ...

  8. 文件或目录损坏且无法读取?正确恢复文件的4个方法

    你有没有遇到过"文件损坏已无法读取"的提示窗口?相信使用电脑的你,或多或少都会遇到过,尤其是我们使用硬盘或者移动硬盘的时候. 遇到这种问题,我们第一时间不是按照系统提示去删除或者格 ...

  9. mfc 获得服务器文件信息,VC编程之VC 读取服务器上的文件(HTTP方式)

    本文主要向大家介绍了VC编程之VC 读取服务器上的文件(HTTP方式),通过具体的内容向大家展示,希望对大家学习VC编程有所帮助. CString GetStringFromUrl(LPCTSTR p ...

最新文章

  1. 【简明书】机器学习用例书册
  2. 【Matlab 控制】Simulink仿真+S函数例子
  3. Maven-EclipseEE使用Maven构建Java web项目从0到1
  4. Django从理论到实战(part33)--表关系
  5. ArcGIS API for Silverlight中legend控件显示图例问题
  6. python中函数分为哪四类_Python函数参数分类原理详解
  7. [李景山php]每天TP5-20161225|thinkphp5-Console.php-2
  8. SpringBoot目录
  9. Box2D——入门教程
  10. 在Linux安装QQ,只需几步
  11. Andorid性能优化之traceview的使用(不懂揍我)
  12. 漂浮广告代码、漂浮代码分析(讲解)
  13. oracle 独占更新,Oracle的共享封锁 独占封锁和共享更新封锁 (3)
  14. 【Win8操作系统中OEM分区创建技巧】
  15. Nape 碰撞检测事件 笔记
  16. Converting circular structure to JSON
  17. 远程桌面分辨率取决于服务器还是客户端,关于Windows8.1高分辨率,远程桌面连接的界面显示很小的问题~...
  18. ENVI:标准库中光谱(.sli)重采样
  19. 送书|逆向系列-你一定要懂的MD5加密
  20. js使用canvas画五角星以及渐变色,瞎画

热门文章

  1. 浙江省高等学校计算机等级考试有什么用,06秋年秋浙江省高等学校计算机等级考试试卷(三级数据库技术及应用)...
  2. php 随机在文章中添加锚文本_页面SEO优化的锚文本优化概念
  3. php获取悉尼时间,php在使用澳大利亚/悉尼时区时给出错误答案
  4. 限定概率抽奖_守护星已点亮,内测皮肤得到没?从天美抽奖概率分析:地址什么梗...
  5. js date转成 时间字符串_秋招快要开始了,前端笔试中的坑位-JS隐式转换问题
  6. 领航机器人广告段子_医院机器人物流广告词_段子网收录最新段子
  7. profile 安卓work_androidWorkProfileGeneralDeviceConfiguration 资源类型
  8. c语言二进制数怎么表示_搞懂这些公式和原理,二级C语言对你来说肯定会简单很多!...
  9. LSGO软件技术团队2015~2016学年第二周(0907~0912)总结
  10. 【转】dicom通讯的工作方式及dicom标准简介!!