JDOM生成、解析XML实例
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import org.jdom.Attribute;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
/**
*
* jdom生成与解析XML文档
*
*/
public class JdomDemo{
Document document = new Document();
/**
* 利用JDom进行xml文档的写入操作
*/
public void createXml(File file) {
// 1.创建元素 及 设置为根元素
Element employees = newElement("employees");
document.setContent(employees);
// 2.创建注释 及 设置到根元素上
Comment commet = new Comment("thisis my comment");
employees.addContent(commet);
// 3.创建元素
Element element1 = newElement("employee");
// 3.1 设置元素的属性名及属性值
element1.setAttribute(newAttribute("id", "0001"));
// 3.2 创建元素的属性名及属性值
Attribute nameAttr = newAttribute("name", "wanglp");
// 3.3 设置元素名及文本
Element sexEle = newElement("sex");
sexEle.setText("m");
// 设置到上层元素上
element1.addContent(sexEle);
// 设置元素
Element ageEle = newElement("age");
ageEle.setText("22");
element1.addContent(ageEle);
// 设置为根元素的子元素
employees.addContent(element1);
// 将元素属性设置到元素上
element1.setAttribute(nameAttr);
// 3.创建元素
Element element2 = newElement("employee");
// 3.1 设置元素的属性名及属性值
element2.setAttribute(newAttribute("id", "0002"));
// 3.2 创建元素的属性名及属性值
Attribute name2Attr = newAttribute("name", "fox");
// 3.3 设置元素名及文本
Element sex2Ele = newElement("sex");
sex2Ele.setText("f");
// 设置到上层元素上
element2.addContent(sex2Ele);
// 设置元素
Element age2Ele = newElement("age");
age2Ele.setText("21");
element2.addContent(age2Ele);
// 设置为根元素的子元素
employees.addContent(element2);
// 将元素属性设置到元素上
element2.setAttribute(name2Attr);
Element element3 = new Element("employee");
element3.setText("title");
element3.addContent(newElement("name").addContent(new Element("hello")));
employees.addContent(element3);
// 设置xml文档输出的格式
Format format =Format.getPrettyFormat();
XMLOutputter out = newXMLOutputter(format);
// 将得到的xml文档输出到文件流中
try {
out.output(document, newFileOutputStream(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 利用JDom进行xml文档的读取操作
*/
public void parserXml(File file) {
// 建立解析器
SAXBuilder builder = new SAXBuilder();
try {
// 将解析器与文档关联
document = builder.build(file);
} catch (JDOMException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
// 读取根元素
Element root =document.getRootElement();
// 输出根元素的名字
System.out.println("<" +root.getName() + ">");
// 读取元素集合
List<?> employeeList =root.getChildren("employee");
for (int i = 0; i <employeeList.size(); i++) {
Element ele = (Element) employeeList.get(i);
// 得到元素的名字
System.out.println("<"+ ele.getName() + ">");
// 读取元素的属性集合
List<?> empAttrList =ele.getAttributes();
for (int j = 0; j <empAttrList.size(); j++) {
Attribute attrs = (Attribute)empAttrList.get(j);
// 将属性的名字和值 并 输出
String name = attrs.getName();
String value = (String)attrs.getValue();
System.out.println(name +"=" + value);
}
try {
Element sex =ele.getChild("sex");
System.out.println("<sex>" + sex.getText());
Element age =ele.getChild("age");
System.out.println("<age>" + age.getText());
} catch (NullPointerException e) {
System.out.println(ele.getTextTrim());
Element name =ele.getChild("name");
System.out.println("<name>" + name.getName());
}
System.out.println("</employee>");
}
System.out.println("</employees>");
}
/**
* 测试
*/
public static void main(String[] args) {
JdomDemo jdom = new JdomDemo();
File file = newFile("E://jdom.xml");
jdom.createXml(file);
jdom.parserXml(file);
}
}
JDOM生成、解析XML实例的更多相关文章
- python 解析XML python模块xml.dom解析xml实例代码
分享下python中使用模块xml.dom解析xml文件的实例代码,学习下python解析xml文件的方法. 原文转自:http://www.jbxue.com/article/16587.html ...
- Python 解析XML实例(xml.sax)
已知movies.xml <collection shelf="New Arrivals"> <movie title="Enemy Behind&qu ...
- DOM4J生成、解析XML实例
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterato ...
- java生成解析xml的另外两种方法Xstream
Xstream生成和解析xm和JAXB生成和解析xml的方法. 一,Xstream Xstream非jdk自带的,需要到入Xstream-1.4.3.jar和xpp3_min-1.1.4.jar 1. ...
- 【Android】使用Pull生成/解析XML文件
一.生成XML文件,即是将对象集合转为XML文件存储. 对象集合 –> XML(序列化) Android中使用android.util.Xml类对其进行了描述,提供相应的API. 步骤大致如下: ...
- java dom4j解析xml实例(2)
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- java dom4j解析xml实例
java利用dom4j解析xml 需要的jar包: dom4j官方网站在 http://www.dom4j.org/ 下载dom4j-1.6.1.zip 解开后有两个包,仅操作XML文档的话把dom4 ...
- java 解析 XML实例
package com.hseact.fecp.servlet; import java.io.IOException; import javax.xml.parsers.DocumentBuilde ...
- DOM方式解析xml实例2
老样子,javabean实体类: import java.io.*; public class Book implements Serializable { private int id; priva ...
随机推荐
- [SDOI 2009]HH的项链
Description HH有一串由各种漂亮的贝壳组成的项链.HH相信不同的贝 壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义.HH不断地收集新的贝壳,因此,他的项链变得 ...
- [JSOI2007]文本生成器
题目描述 JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版. 该软件可以随机生成一些文章―――总是生成一篇长度 ...
- ●洛谷P1291 [SHOI2002]百事世界杯之旅
题链: https://www.luogu.org/recordnew/show/5861351题解: dp,期望 定义dp[i]表示还剩下i个盖子没收集时,期望还需要多少次才能手机完. 初始值:dp ...
- 【USACO17JAN】Promotion Counting晋升者计数 线段树+离散化
题目描述 The cows have once again tried to form a startup company, failing to remember from past experie ...
- VK Cup 2017 - Квалификация 2
因为资格赛1已经通过了,资格赛2随便打打玩.这次题目比上次还简单,FallDream看了两眼觉得太水就不做了,我一个人闲着无聊只好默默做了 A. Новый пароль 题目大意:给出N和K,要求构 ...
- bzoj4830 hnoi2017 抛硬币
题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A ...
- Codeforces Round #419 D. Karen and Test
Karen has just arrived at school, and she has a math test today! The test is about basic addition an ...
- solr6.6初探之分词篇
关于solr6.6搭建与配置可以参考 solr6.6初探之配置篇 在这里我们探讨一下分词的配置 一.关于分词 1.分词是指将一个中文词语拆成若干个词,提供搜索引擎进行查找,比如说:北京大学 是一个词那 ...
- shell中read使用
(1) 下面的语句从输入中读取n个字符并存入变量variable_name: read -n number_of_chars variable_name例如:[root@host1 shell]# r ...
- Delphi7数据库编程之TDataSet(转)
TDataSet类由TBDEDataSet(BDE组件).TCustomADODataSet(ADO组件).TIBCustomDataSet(InterBase组件).TCustomSQLDataSe ...