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 ...
随机推荐
- [HNOI2007]最小矩形覆盖
题目描述 给定一些点的坐标,要求求能够覆盖所有点的最小面积的矩形,输出所求矩形的面积和四个顶点坐标 输入输出格式 输入格式: 第一行为一个整数n(3<=n<=50000),从第2至第n+1 ...
- 【NOIP2012TG】solution
D1T1(Vigenere) 题意:给你一个原串与一个密码串,问你按照题意规则加密后的密文. 解题思路:暴力模拟. #include <stdio.h> ],c[],u1[],u2[]; ...
- 【Codeforces Round #430 (Div. 2) A C D三个题】
·不论难度,A,C,D自己都有收获! [A. Kirill And The Game] ·全是英文题,述大意: 给出两组区间端点:l,r,x,y和一个k.(都是正整数,保证区间不为空),询问是否 ...
- [BZOJ]1050 旅行comf(HAOI2006)
图论一直是小C的弱项,相比其它题型,图论的花样通常会更多一点,套路也更难捉摸. Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权 ...
- java的泛型
泛型概述 先看下面的代码: ArrayList al1 = new ArrayList(); ArrayList al2 = new ArrayList(); al1.add("hello& ...
- 安装win7提示“我们无法创建新的分区,也找不到现有分区”
用U盘安装操作系统,但是遇到了这种问题. 来来回删掉主分区,重新建立主分区,都不能搞定.最后还是用古老的方法安装了.安装的方法如下: 大家首先要进入到winpe,这里我用的是大白菜winpe. 将C盘 ...
- 使用word
同样这也是生活中常用到的办公软件,word本质是一个排版软件,它与一般的编辑器不同的是,它将整个文本分成了一页一页的,当然这也是方便于打印文档. 使用word还是很容易的,一般来说需要注意以下几方面的 ...
- Win7删除文件夹提示找不到该项目无法删除
在使用win7操作系统的过程中,有一些朋友会遇到这种情况,因为某种不明原因,硬盘里面某一个文件夹无法删除,表现为在删除的时候,系统提示找不到该项目,即找不到该文件夹,就像它变成了幽灵一样,看得到却摸不 ...
- 提高数据库的查询速率及其sql语句的优化问题
在一个千万级的数据库查寻中,如何提高查询效率? 1)数据库设计方面: a.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. b.应尽量避免在 ...
- vmware虚拟机CentOS7安装oracle数据库
想用linux虚拟机装一个oracle,中间遇到的坑太多了,最后总算是安装好了,一定要写个全面的教程出来. 话不多说 通用编辑命令: vi test.txt #进入编辑模式 编辑完成后按ESC退出 ...