【Java】XML解析之JDOM
JDOM介绍
JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。使用jdom需要引入jdom.jar包。
XML生成及解析
代码如下:
- package com.test.jdom;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.util.List;
- import org.jdom2.Document;
- import org.jdom2.Element;
- import org.jdom2.JDOMException;
- import org.jdom2.input.SAXBuilder;
- import org.jdom2.output.Format;
- import org.jdom2.output.XMLOutputter;
- public class TestJdom {
- public static void main(String[] args) {
- createXml();
- parserXml();
- }
- public static void createXml() {
- //文档
- Document document = new Document();
- //根元素
- Element root = new Element("conpany");
- //设置属性
- root.setAttribute("name","hd");
- //添加根目录
- document.setRootElement(root);
- Element department = new Element("department");
- department.setAttribute("name","department1");
- //添加到根目录
- root.addContent(department);
- Element employee = new Element("employee");
- employee.setAttribute("name","employee1");
- employee.setAttribute("id","1");
- //设置文本
- employee.setText("123");
- department.addContent(employee);
- XMLOutputter xmlOut = new XMLOutputter();
- xmlOut.setFormat(Format.getPrettyFormat());
- try {
- xmlOut.output(document, new FileOutputStream("src/test-jdom-create.xml"));
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public static void parserXml() {
- // 创建一个SAXBuilder
- SAXBuilder builder = new SAXBuilder();
- try {
- // 通过输入源SAX构造一个Document
- Document document = builder.build("src/test-jdom-create.xml");
- //获取根节点
- Element root = document.getRootElement();
- // 获得root节点下面的所有子节点
- List<Element> departmentList = root.getChildren();
- for (Element department: departmentList) {
- // 获得节点属性
- System.out.println(department.getName()+"\t"+department.getAttributeValue("name"));
- List<Element> employeeList = department.getChildren();
- for (Element employee : employeeList) {
- // 获得节点属性和文本
- System.out.println("\t" + employee.getName() + "\t"+ employee.getAttributeValue("name") + "\t"+ employee.getText());
- }
- }
- } catch (JDOMException e) {
- System.out.println(e.getMessage());
- } catch (IOException e) {
- System.out.println(e.getMessage());
- }
- }
- }
生成文本:
输出结果:
【Java】XML解析之JDOM的更多相关文章
- Java XML解析器
使用Apache Xerces解析XML文档 一.技术概述 在用Java解析XML时候,一般都使用现成XML解析器来完成,自己编码解析是一件很棘手的问题,对程序员要求很高,一般也没有专业厂商或者开源组 ...
- Java XML解析工具 dom4j介绍及使用实例
Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...
- java xml解析方式(DOM、SAX、JDOM、DOM4J)
XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...
- xml解析工具-jdom
前言:近期接触SSH框架的时候,经常得配置一下xml文件:今天闲来没事就挖挖xml解析的原理供大伙儿分享.本文主要通过一个简单的例子解析一个xml文件.明白其中缘由之后,大家想定义自己的xml也绝非难 ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- Java数据库编程及Java XML解析技术
1.JDBC概述 A. 什么是JDBC? Java DataBase Connectivity:是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和接口组成.通过这些类和接口 ...
- Java -- XML解析工具dom4j
前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...
- 大数据之路week04--day05(java XML解析)
java解析XML的四种方式: XML是一种通用的数据交换格式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便.XML在不同的语言环境中解析方式都是一样的,只不过实现的语法不 ...
- xml 解析之 JDOM解析
JDOM 是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序.JDOM 是一个开源项目,它基于树形结构,利用纯 Java 的技术对 XML 文档实现解析.生成.序列化及多种操 ...
随机推荐
- Spring AOP 完成日志记录
Spring AOP 完成日志记录 http://hotstrong.iteye.com/blog/1330046
- Tomcat 配置 HTTPS双向认证
Tomcat 配置 HTTPS 双向认证指引说明: � 本文档仅提供 Linux 操作系统下的指引 � 在阅读本指引前请您在 Linux 部署 JDK 和 Tomcatserver为了 Tomcat ...
- main 方法,
默认是设置是alt / 就是你打出main以后按(alt /)
- 苹果手机制作gif图片
前一段介绍了一款很好用的在模拟器上录制gif图片的工具licecap(地址:http://www.cnblogs.com/10-19-92/p/5593785.html), 但是licecap不能使用 ...
- 【转】WPF 窗体淡入淡出动画
第一种 <Window.Triggers> <EventTrigger RoutedEvent="Window.Loaded" > <BeginSto ...
- thinkphp关联模型的注意大小写
TP框架报错: think\Model:relation方法不存在 首先检查大小写,尤其是模型名称首字母大写 /**** 模型名字QqModel.class.php ***************** ...
- 26、首先通过javascript包的异步加载来学习echarts包的结构
1.在这里先写一写前言,今天在公司搞定了一个对于滚动条进行定位的case,明天开始做TestManagement. 首先大家先来一起看一看流行的javascript文件的加载方式,这里采用别人博客上的 ...
- 树莓派USB摄像头与camera模块对比
http://www.cnblogs.com/weixinforspurs/p/5575962.html ——————————————————————————————————————————————— ...
- mysql 数据库备份
(2)使用命令行工具 备份数据库: mysqldump –user=root –password=root密码 –lock-all-tables 数据库名 > 备份文件.sql 恢复数据库: m ...
- ASP.NET实现大文件下载
https://support.microsoft.com/zh-cn/kb/812406 http://www.cnblogs.com/luisliu/p/4253815.html 当我们的网站需要 ...