当前位置: 首页 > news >正文

Java 操作XML,JDOMDOM4J

  JDOM 引入

JDOM 是一种使用XML(标准通用标记语言下的一个子集) 的独特Java 工具包,用于快速开发XML 应用
程序。
JDOM 官方网站:http://www.jdom.org/

  DOM4J 引入

dom4j 是一个Java 的XML API,类似于jdom,用来读写XML 文件的。dom4j 是一个非常非常优秀的JavaXML
API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在SourceForge
上找到它。在IBM developerWorks 上面可以找到一篇文章,对主流的Java XML API 进行的性能、功能和易用性
的评测,dom4j 无论在哪个方面都是非常出色的。如今你可以看到越来越多的Java 软件都在使用dom4j 来读写
XML,特别值得一提的是连Sun 的JAXM 也在用dom4j。这是必须使用的jar 包, Hibernate 用它来读写配置文
件。
DOM4J 官方网站:http://www.dom4j.org/

  

package com.zhiqi.test;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class DOM4JSet {
	
	public static void main(String[] args) {
		Document document=DocumentHelper.createDocument();
		Element studentElement=document.addElement("student");
		studentElement.addAttribute("id", "001");
		studentElement.addAttribute("aa", "xx");
		
		Element name=studentElement.addElement("name");
		name.setText("张三");
		Element sex=studentElement.addElement("sex");
		sex.setText("男");
		Element age=studentElement.addElement("age");
		age.setText("20");
		
		OutputFormat format=OutputFormat.createPrettyPrint();
		format.setEncoding("UTF-8");
		try {
			XMLWriter writer=new XMLWriter(new FileOutputStream("src/student.xml"),format);
			writer.write(document);
			writer.close();
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

  解析DOM

<?xml version="1.0" encoding="UTF-8"?>
<emps>
<emp empNo="10050">
	<empName>Allen</empName>
	<job>办事员</job>
	<addr>波士顿</addr>
</emp>
<emp empNo="10060">
	<empName>Smith</empName>
	<job>销售员</job>
	<addr>纽约</addr>
</emp>
<emp empNo="10070">
	<empName>James</empName>
	<job>技术员</job>
	<addr>北京</addr>
</emp>
</emps>

  

package com.zhiqi.test;

import java.util.Iterator;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DOM4JGet {
	public static void main(String[] args) throws Exception{
		SAXReader saxReader=new SAXReader();
		Document document=saxReader.read("src/emp.xml");
		Element rootElement=document.getRootElement();
		Iterator iter=rootElement.elementIterator();
		while(iter.hasNext()){
			Element empElement=(Element)iter.next();
			System.out.println("编号:"+empElement.attributeValue("empNo"));
			System.out.println("姓名:"+empElement.elementText("empName"));
			System.out.println("职位:"+empElement.elementText("job"));
			System.out.println("地址:"+empElement.elementText("addr"));
			System.out.println("=========");
		}
	}
}

  

转载于:https://www.cnblogs.com/void-m/p/6351818.html

相关文章:

  • React怎么创建.babelrc文件
  • JavaSE 学习参考:switch语句
  • Git使用技巧(1)-- 配置【持续更新】
  • Maven 上传 jar 到 私服命令
  • 我们发的不是红包,而关系证明
  • grep和sed匹配多个字符关键字的用法
  • mybatis的延迟加载
  • OVS VxLAN Flow 分析 - 每天5分钟玩转 OpenStack(149)
  • [Manacher]【学习笔记】
  • python 常见问题总结
  • http通信json解析过滤无关字符
  • kalilinux、parrotsecos没有声音
  • Git 使用集
  • CentOS修改时区、日期、时间
  • ntdsutil 清理弃用服务器-----待验证
  • Android Studio:GIT提交项目到远程仓库
  • Android优雅地处理按钮重复点击
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • JS实现简单的MVC模式开发小游戏
  • Kibana配置logstash,报表一体化
  • Python - 闭包Closure
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • vue脚手架vue-cli
  • Wamp集成环境 添加PHP的新版本
  • 聚簇索引和非聚簇索引
  • 使用SAX解析XML
  • 算法系列——算法入门之递归分而治之思想的实现
  • 问题之ssh中Host key verification failed的解决
  • 原生 js 实现移动端 Touch 滑动反弹
  • MPAndroidChart 教程:Y轴 YAxis
  • python最赚钱的4个方向,你最心动的是哪个?
  • (1) caustics\
  • (2)Java 简介
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (二)WCF的Binding模型
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (转)我也是一只IT小小鸟
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • .NET CLR基本术语
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net连接oracle数据库
  • []Telit UC864E 拨号上网
  • [1181]linux两台服务器之间传输文件和文件夹
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [IE编程] 如何编程清除IE缓存
  • [leetcode] 四数之和 M
  • [POJ2446] Chessboard(二分图最大匹配-匈牙利算法)
  • [PyTorch][chapter 64][强化学习-DQN]
  • [Rust学习:二]变量和传参
  • [Unity3D]--更换天空盒子
  • [vue element-ui]JAVA POST请求
  • [Vue3] vue-router路由守卫进阶