基于JDOM生成解析XML过程解析

 更新时间:2020年10月19日 15:32:02   作者:cuisuqiang  
这篇文章主要介绍了基于JDOM生成解析XML过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

JDOM是一个开源项目,它基于树型结构,利用纯JAVA的技术对XML文档实现解析、生成、序列化以及多种操作。

JDOM 直接为JAVA编程服务。它利用更为强有力的JAVA语言的诸多特性(方法重载、集合概念以及映射),把SAX和DOM的功能有效地结合起来。

Jdom是用Java语言读、写、操作XML的新API函数。Jason Hunter 和 Brett McLaughlin公开发布了它的1.0版本。在直觉、简单和高效的前提下,这些API函数被最大限度的优化。在接下来的篇幅里将介绍怎么用Jdom去读写一个已经存在的XML文档。

到官方网站下载JDOM包http://www.jdom.org/

注意的是,版本1和版本2的类路径已经变更,如果你是更新使用版本2,则需要重新编译你的代码

package com.test;

import java.io.FileOutputStream;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

/**
 * @说明 JDom生成解析XML
 * @author cuisuqiang
 * @version 1.0
 * @since
 */
@SuppressWarnings("unchecked")
public class JDomDemo {
	public static void main(String[] args) {
		String file = "C:\\p.xml"; // 文件存放位置
		JDomDemo dj = new JDomDemo();
		dj.createXml(file);
		dj.parserXml(file);
	}
	/** 
   * 生成XML 
   * @param filePath 文件路径 
   */
	public void createXml(String fileName) {
		Element root = new Element("persons");
		Document document = new Document(root);
		Element person = new Element("person");
		root.addContent(person);
		Element name = new Element("name");
		name.setText("java小强");
		person.addContent(name);
		Element sex = new Element("sex");
		sex.setText("man");
		person.addContent(sex);
		Element age = new Element("age");
		age.setText("23");
		person.addContent(age);
		XMLOutputter XMLOut = new XMLOutputter();
		try {
			Format f = Format.getPrettyFormat();
			f.setEncoding("UTF-8");//default=UTF-8
			XMLOut.setFormat(f);
			XMLOut.output(document, new FileOutputStream(fileName));
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	 /** 
   * 解析XML 
   * @param filePath 文件路径 
   */ 
	public void parserXml(String fileName) {
		try {
			SAXBuilder builder = new SAXBuilder();
			Document document = builder.build(fileName);
			Element root = document.getRootElement();
			List persons = root.getChildren("person");
			for (int i = 0; i < persons.size(); i++) {
				Element person = (Element) persons.get(i);
				List pros = person.getChildren();
				for (int j = 0; j < pros.size(); j++) {
					Element element = (Element) pros.get(j);
					System.out.println(element.getName() + ":" + element.getValue());
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 教你Java中的Lock锁底层AQS到底是如何实现的

    教你Java中的Lock锁底层AQS到底是如何实现的

    本文是基于ReentrantLock来讲解,ReentrantLock加锁只是对AQS的api的调用,底层的锁的状态(state)和其他线程等待(Node双向链表)的过程其实是由AQS来维护的,对Java Lock锁AQS实现过程感兴趣的朋友一起看看吧
    2022-05-05
  • Intellij IDEA基于Springboot的远程调试(图文)

    Intellij IDEA基于Springboot的远程调试(图文)

    这篇文章主要介绍了Intellij IDEA基于Springboot的远程调试(图文),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • springboot单独在指定地方输出sql的方法

    springboot单独在指定地方输出sql的方法

    一般线上项目都是将日志进行关闭,因为mybatis日志打印,时间长了,会占用大量的内存,如果我想在我指定的地方进行打印sql情况,本文就给大家介绍了springboot单独在指定地方输出sql的方法,需要的朋友可以参考下
    2023-10-10
  • Spring Boot 集成Redisson实现分布式锁详细案例

    Spring Boot 集成Redisson实现分布式锁详细案例

    这篇文章主要介绍了Spring Boot 集成Redisson实现分布式锁详细案例,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • java导出excel 浏览器直接下载或者或以文件形式导出

    java导出excel 浏览器直接下载或者或以文件形式导出

    这篇文章主要介绍了java导出excel 浏览器直接下载或者或以文件形式导出方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 关于java命令的本质逻辑揭秘过程

    关于java命令的本质逻辑揭秘过程

    Java是通过java虚拟机来装载和执行编译文件(class文件)的,java虚拟机通过命令java  option 来启动,这篇文章主要给大家介绍了关于java命令的本质逻辑揭秘的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-05-05
  • Java动态替换properties文件中键值方式

    Java动态替换properties文件中键值方式

    这篇文章主要介绍了Java动态替换properties文件中键值方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • SpringBoot超详细讲解Thymeleaf模板引擎

    SpringBoot超详细讲解Thymeleaf模板引擎

    这篇文章主要分享了Spring Boot整合使用Thymeleaf,Thymeleaf是新一代的Java模板引擎,类似于Velocity、FreeMarker等传统引擎,关于其更多相关内容,需要的小伙伴可以参考一下
    2022-07-07
  • JDBC编程的详细步骤

    JDBC编程的详细步骤

    这篇文章主要介绍了JDBC编程的详细步骤,文中有非常详细的代码示例,对正在学习JDBC编程的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • 分享Java开发必须掌握的日志分析命令

    分享Java开发必须掌握的日志分析命令

    这篇文章主要介绍了分享Java开发必须掌握的日志分析命令,在日常工作中,如果我们遇到线上问题,一般的处理步骤应该是先保留现场,然后再考虑回滚,之后再是解决问题
    2019-07-07

最新评论