一、一个很好的SAXReader读写xml文件的例题;

总结:

Document document=new SAXReader.reader(“xml文路径/文件名xxx.xml”);//得到Document对象

Element root = document.getRootElement()//获得根节点

Iterator iterator=root.elementIterator(); //从根节点遍历子节点

Iterator iterator=Element.elementIterator(); //再从子节点在遍历其子节点

对节点访问其属性用:Attribute leaderAttr =Element. attribute(“xxx”);

对节点访问其某个属性leaderAttr的名称:leaderAttr.getName();

对节点访问其某个属性leaderAttr的值:leaderAttr.getValue()

对节点访问其名称:Element.getName();

对节点访问其文本:Element. getText();

简单代码为如下:

Document document=new SAXReader.reader(“xml文路径/文件名xxx.xml”);

Element root = document.getRootElement();

HashMap hm = new HashMap();

for ( Iterator iter = root.elementIterator(); iter.hasNext(); )

{   Element element = (Element) iter.next();

Attribute ageAttr=element.attribute("age");

String age = ageAttr.getValue();

。。。。。

for ( Iterator iterInner = element.elementIterator(); iterInner.hasNext(); ) {

Element elementInner = (Element) iterInner.next();

//遍历college节点开始

if(elementInner.getName().equals("college")){

/添加college的文本

hm.put(elementInner.getName()+ num, elementInner.getText());

//添加college的leader属性

Attribute leaderAttr=elementInner.attribute("leader");

。。。。。如果leaderAttr不是空字符或者其值不为null。。。。。

hm.put(elementInner.getName() + "-"+leaderAttr.getName()+ num,

leaderAttr.getValue());

}

else{ //遍历非college节点的其它节点

hm.put(elementInner.getName()+ num, elementInner.getText());

}

崔卫兵

PC学院

62354666

男,1982年生,硕士,现就读于北京邮电大学

cwb

PC学院

62358888

男,1987年生,硕士,现就读于中国农业大学

xxxxx

xxx学院

66666666

注视中,注释中

lxx

yyyy学院

88888888

注视中111,注释中222

Dom4jReadExmple.java

package test2;

import java.io.File;

import java.util.HashMap;

import java.util.Iterator;

import org.dom4j.Attribute;

import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class Dom4jReadExmple {

public void iterateWholeXML(String filename,HashMap hm){

SAXReader saxReader = new SAXReader();

try {

Document document = saxReader.read(new File(filename));

Element root = document.getRootElement();

//   用于记录学生编号的变量

int num=-1;

//遍历根结点(students)的所有孩子节点(肯定是student节点)

for ( Iterator iter = root.elementIterator(); iter.hasNext(); ) {

Element element = (Element) iter.next();

num++;

// 获取person节点的age属性的值

Attribute ageAttr=element.attribute("age");

if(ageAttr!=null){

String age = ageAttr.getValue();

if (age != null&&!age.equals("")) {

hm.put(element.getName() + "-"+ageAttr.getName()+ num, age);

} else {

hm.put(element.getName() + "-" +ageAttr.getName()+ num, "20");

}

}else{

hm.put(element.getName() + "-age"+ num, "20");

}

//遍历student结点的所有孩子节点(即name,college,telphone,notes),并进行处理

for ( Iterator iterInner = element.elementIterator(); iterInner.hasNext(); ) {

Element elementInner = (Element) iterInner.next();

if(elementInner.getName().equals("college")){

hm.put(elementInner.getName()+ num, elementInner.getText());

//获取college节点的leader属性的值

Attribute leaderAttr=elementInner.attribute("leader");

if(leaderAttr!=null){

String leader = leaderAttr.getValue();

if (leader != null&&!leader.equals("")) {

hm.put(elementInner.getName() + "-"+leaderAttr.getName()+ num, leader);

} else {

hm.put(elementInner.getName() + "-" +leaderAttr.getName()+ num, "leader");

}

}else {

hm.put(elementInner.getName() + "-leader"+ num, "leader");

}

}else{

hm.put(elementInner.getName()+ num, elementInner.getText());

}

}

}

} catch (DocumentException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

TestDom4jReadExmple.java

package dom4jExample.read;

import java.util.HashMap;

public class TestDom4jReadExmple {

public static void main(String[] args) {

try{

//获取解析完后的解析信息

HashMap hashMap;

Dom4jReadExmple drb=new Dom4jReadExmple();

//遍历整个XML文件

hashMap = new HashMap();

drb.iterateWholeXML("studentInfo.xml", hashMap);

System.out.println("姓名\t年龄\t学院\t学院领导\t电话\t\t备注");

for(int i=0;i

int j=i/6;

System.out.print(hashMap.get("name"+j)+"\t");

System.out.print(hashMap.get("student-age"+j)+"\t");

System.out.print(hashMap.get("college"+j)+"\t");

System.out.print(hashMap.get("college-leader"+j)+"\t");

System.out.print(hashMap.get("telephone"+j)+"\t");

System.out.println(hashMap.get("notes"+j)+"\t");

}

}catch(Exception ex){

ex.printStackTrace();

}

}

}

二、

一个读写操作的例子:

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.InputStream;

import java.util.Iterator;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

import org.dom4j.io.XMLWriter;

public class testXml {

public static void main(String[] args) {

try {

testXml test = new testXml();

test.testWrite();

test.testRead();

} catch (Exception e) {

e.printStackTrace();

}

}

public void testRead() throws Exception{

SAXReader reader = new SAXReader();

Document document = reader.read(new FileInputStream("src/output.xml"));

Element root = document.getRootElement();

for (Iterator iter = root.elementIterator(); iter.hasNext();) {

Element element = (Element) iter.next();

System.out.println(element.getText());

System.out.println(element.attributeValue("name"));

System.out.println(element.attributeValue("blog"));

}

}

public void testWrite() throws Exception{

Document document = DocumentHelper.createDocument();

Element root = document.addElement("root");

for(int i=0;i<10;i++){

Element element1 = root.addElement("user")

.addAttribute("name","Alex"+i)

.addAttribute("id", "id"+i)

.addText("我是信息");

}

XMLWriter writer = new XMLWriter(new FileOutputStream("src/output.xml"));

writer.write(document);

writer.close();

}

}

输出的效果:

我是信息

我是信息

我是信息

我是信息

我是信息

我是信息

我是信息

我是信息

我是信息

我是信息

saxreader java_DOM4j读取XML文件(SAXReader)相关推荐

  1. java项目——Dom4j读取XML文件连接orecal数据库

    Dom4j介绍:           dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集 成了DOM,SAX和JAXP.在国内比较 ...

  2. java项目——Dom4j读取XML文件保存orecal数据库

    上一篇介绍了如何利用dom4j读取xml文件,连接数据库,换数据库的话直接修改XML文件,使配置更加灵 活,本篇博客主要介绍一下如何将XML文件导入到orecal数据库中. XML在现在的项目中的应用 ...

  3. DOM4j读取XML文件(SAXReader)

    为什么80%的码农都做不了架构师?>>>    DOM4j读取XML文件(SAXReader) 一.一个很好的SAXReader读写xml文件的例题: 总结: Document do ...

  4. java读取XML文件的四种方式

    java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...

  5. dom4j读取XML文件内容

    转载自  dom4j读取XML文件内容 <?xml version="1.0" encoding="UTF-8"?> <RESULT> ...

  6. XMLReader—一个可以读取XML文件的java类

    在我的博文java ArrayList代替数组中有个XMLReader类,这是一个可以读取XML文件的java类,它的实现过程是怎样的呢?接下来让我们看看XMLReader的实现过程: 首先你要下载一 ...

  7. java给xml加入值,怎么用java读取XML文件里的值并加入jsp页面中的下拉列表中

    如何用java读取XML文件里的值并加入jsp页面中的下拉列表中? 如何用java读取XML文件里的值并加入jsp页面中的下拉列表中? java xml jsp 分享到: ------解决方案---- ...

  8. SQL Server中读取XML文件的简单做法

    SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...

  9. [转帖]C#执行SQL脚本,读取XML文件

    [转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...

  10. java 存取xml数据_JAVA读取XML文件数据

    XML文档内容如下: title1 title2 title3 JAVA代码如下: package cn.mylucene; import java.io.File; import java.io.I ...

最新文章

  1. C语言题解:用二分法思想求解10个元素中某个元素的下标(包含函数方法)
  2. C#GDI+编程基础
  3. Product of Three Numbers(CF-1294C)
  4. 《java系统性能调优》--1.发现瓶颈
  5. 20155220 Exp5 MSF基础应用
  6. delphi7文件服务器,使用Delphi7进行OPC服务器的开发.pdf
  7. vscode占用C盘空间迁移到其他盘
  8. ADI收发器新品-ADRV9002特性与对比(AD9361/71/ADRV9009)
  9. 中国省市地图JSON数据下载
  10. php jmail,PHP利用Jmail组件实现发送邮件
  11. Python 将JPEG图片批量改成jpg并删除JPEG图片
  12. android画布橡皮,Android画板开发之橡皮擦功能
  13. 群晖nas不能修改php.ini,群晖nas 修改nginx配置的问题
  14. 记录百度点击登录无响应及百度搜索显示异常
  15. 【无标题】A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Pl
  16. Maven delopy源码
  17. 常用工具 [ubuntu 图像编辑软件]
  18. Dell戴尔笔记本电脑灵越Inspiron 5580原装出厂Windows10系统恢复原厂oem系统
  19. java基础 DK JRE JVM 关系 JDK 下载和安装
  20. android webview 找不到网页,webview loadUrl 显示“找不到网页”

热门文章

  1. 检测文章相似度的方法?文章原创度检测工具免费
  2. 一秒实现免费下载百度文库资料的方法
  3. ajax上传图片springmvc,springmvc ajax上传图片(jquery)
  4. QCalendarWidget 日历控件
  5. 嵌入式C语言数据类型
  6. php怎么上传文档,php
  7. 数据库MySQL详解(入门学习)
  8. 极易上手搭建自己日志采集服务器分析日志(winlogbeat+Elasticsearch+Kibana)
  9. 迅雷手机版苹果版_「9月22日」最新 苹果IOS手机迅雷Beta版证书修复版 安卓不限速...
  10. android adb login,adb