本文主要使用的是Jdom.jar包(包的下载百度一下)实现了生成xml文件和解析xml文件

下面是生成xml的实现

说明:stuLists集合是一个存放着Student对象的集合

 import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList; import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter; public class AddXml {
public static void main(String[] args) {
new AddXml().changeXml();
}
public void changeXml(){
Jdbc jdbc = new Jdbc();
jdbc.addList();
ArrayList<Student> stuLists = Jdbc.getStuList(); Document docu = new Document();
Element root = new Element("root");
docu.addContent(root);
for (int i = 0; i < stuLists.size(); i++) {
// System.out.println(stuLists.get(i));
Student s = stuLists.get(i); Element info = new Element("info");
Element student = new Element("student");
Element id = new Element("id");
Element name = new Element("name");
Element sex = new Element("sex");
Element age = new Element("age"); Element book = new Element("book");
Element bid = new Element("bid");
Element bname = new Element("bname");
Element bprice = new Element("bprice");
Element bautor = new Element("bautor");
book.addContent(bid);
book.addContent(bname);
book.addContent(bprice);
book.addContent(bautor); student.addContent(id);
student.addContent(name);
student.addContent(sex);
student.addContent(age);
info.addContent(student);
info.addContent(book); root.addContent(info);
int a = i+1;
String No = "000"+a;
student.setAttribute("No", No);
id.setText(s.getId());
name.setText(s.getName());
sex.setText(s.getSex());
age.setText(s.getAge()); String b="0"+a;
bid.setText(b);
bname.setText("java核心");
bprice.setText("1334.0");
bautor.setText("star"); }
//格式化生成的xml文件,如果不进行格式化的话,生成的xml文件将会是很长的一行...
Format format = Format.getCompactFormat();
format.setEncoding("utf-8");
format.setIndent(" ");
XMLOutputter xo = new XMLOutputter(format);
try {
xo.output(docu, new FileOutputStream(new File("e:/io/stu.xml")));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("生成xml文件成功!!!");
}
}

结果如图所示:

下面是用java解析上面所写的xml文件

简写版

package com.direct.demo;

import java.io.IOException;
import java.util.List; import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder; public class Saxxml { public static void main(String[] args) {
//解析xml文档
SAXBuilder builder = new SAXBuilder();
Document docu = null;
try {
docu = builder.build("e:/io/student.xml");
} catch (JDOMException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} Element root = docu.getRootElement();//得到根目录
List stulist = root.getChildren();
System.out.println(stulist.size()+"-----------");
System.out.println("------------------读取xml文档的信息---------------------");
for (int i = 0; i < stulist.size(); i++) {
Element e = (Element) stulist.get(i);
String stuid;
String stuname ;
String stusex ;
String stuage;
/*String stuValues = e.getAttribute("No").getValue();//属性值
String stuValues1 = e.getAttributeValue("No");
if (stuValues.equals("102")) {
//修改姓名
System.out.println(stuValues);
e.getChild("stuname").setText("砖石王老五");
//删除元素
root.removeContent(e);
break;
}*/ if (i==0) {
stuid = e.getChildText("stuid");
stuname = e.getChildText("stuname");
stusex = e.getChildText("stusex");
stuage = e.getChildText("stuage");
}else {
stuid = e.getChildText("stuid"+i);
stuname = e.getChildText("stuname"+i);
stusex = e.getChildText("stusex"+i);
stuage = e.getChildText("stuage"+i);
}
System.out.println("属性:"+e.getAttributeValue("No"));
System.out.println("学号:"+stuid);
System.out.println("姓名:"+stuname);
System.out.println("年龄:"+stuage);
System.out.println("性别:"+stusex);
System.out.println("--------------------");
}
}
}

  

java 生成和解析xml的更多相关文章

  1. dom4j生成和解析xml文件

    dom4j生成和解析xml文件 要生成和解析如下格式的xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...

  2. DOM4J生成、解析XML实例

    import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterato ...

  3. JDOM生成、解析XML实例

    import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...

  4. Java用SAX解析XML

    要解析的XML文件:myClass.xml <?xml version="1.0" encoding="utf-8"?> <class> ...

  5. java Document生成和解析xml

    转自:https://blog.csdn.net/p812438109/article/details/81807440 Document场景:需要知道文档所有结构 需要把文档一些元素排序 文档中的信 ...

  6. java使用sax解析xml

    目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article ...

  7. android 67 生成和解析xml

    生成xml: package com.itheima.createxml; import java.io.File; import java.io.FileNotFoundException; imp ...

  8. Java生成、解析二维码

    今天遇到需求,使用Java生成二维码图片,网搜之后,大神们早就做过,个人总结一下. 目标:借助Google提供的ZXing Core工具包,使用Java语言实现二维码的生成和解析. 步骤如下: 1.m ...

  9. Java中Sax解析XML

    SAX基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式:这种解析方法速度快.占用内存少,但是它需要应用程序自己处理 ...

随机推荐

  1. python中package机制的两种实现方式

    当执行import module时,解释器会根据下面的搜索路径,搜索module1.py文件. 1) 当前工作目录 2) PYTHONPATH中的目录 3) Python安装目录 (/usr/loca ...

  2. java 优秀文章集锦

    一个简易的静态网页服务器  https://www.cnblogs.com/longfurcat/p/10355514.html   浅析Servlet执行原理   https://www.cnblo ...

  3. 【转】C++ 类访问控制public/private/protected探讨

    示例1:---------------------------------------- class C{ int c1; int c2;public: void set(C* s, int i, i ...

  4. leetcode-812-Largest Triangle Area

    题目描述: You have a list of points in the plane. Return the area of the largest triangle that can be fo ...

  5. jquery选项卡效果

    效果图: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  6. (STM32F4) SysTick理解使用

    關於Cortex System Timer (Systick) 網上隨便google就可以找到許多相關範例. 他就是ARM提供的一個24-bit的下數(count-down)計時器我看大部分應用都是提 ...

  7. Machine learning 吴恩达第二周coding作业(必做题)

    1.warmUpExercise: function A = warmUpExercise() %WARMUPEXERCISE Example function in octave % A = WAR ...

  8. 1. JavaScript学习笔记——JS基础

    1. JavaScript基础 1.1 语法 严格区分大小写 标识符,第一个字符可以是 $,建议使用小驼峰法, 保留字.关键字.true.false.null不能作为标识符 JavaScript是用U ...

  9. CSAPP阅读笔记-汇编语言初探(控制类指令)-来自第三章3.6的笔记-P135-P163

    1.正溢出与负溢出: 首先,一个正数与一个负数相加,不可能溢出,因为结果的绝对值一定小于两个加数的绝对值,既然两个加数能合理表示出来,结果一定也能合理表示出来. 其次,正溢出是由于两个很大的正数相加, ...

  10. 自适应网页设计(Responsive Web Design)别名(响应式web设计)转载阮一峰

    随着3G的普及,越来越多的人使用手机上网. 移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通 ...