首页 > 编程语言 > 基于JDOM生成解析XML过程解析
2020
10-20

基于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();
		}
	}
}

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

编程技巧