本文主要使用的是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. Run Faster-JAVA

    又好久没有写点啥了,平时都忙于工作,忙于应付工作中的问题,各种吸收却并没有好好的消化,该是"反刍"一下的时候了. 本篇名叫"Run Faster,JAVA",其 ...

  2. Event(补交作业)

    三种方法可以创建Eventhandler 1.

  3. miniui中表单验证规则总结

    页面链接: http://www.miniui.com/demo/#src=form/rules.html 页面效果图: 页面代码: <!DOCTYPE html PUBLIC "-/ ...

  4. Leetcode 856. Score of Parentheses 括号得分(栈)

    Leetcode 856. Score of Parentheses 括号得分(栈) 题目描述 字符串S包含平衡的括号(即左右必定匹配),使用下面的规则计算得分 () 得1分 AB 得A+B的分,比如 ...

  5. chromedriver for mac

  6. JS框架设计之主流框架的引入机制DomeReady一种子模块

    DomReady其实是一种名为"DomContentLoaded"事件的名称,不过由于框架的需要,它与真正的DomContentLoaded有区别,在旧的JS书籍中m都会让我们把J ...

  7. c# 实现RPC框架的思路

    RPC框架,就是远程调用一个方法就像是本地调用一样. 用于网络消息的话,那么你的收发消息通过异步方法可以写在一起,很方便 核心代码 using System; using System.Collect ...

  8. 关于Jquery事件绑定的心得

    今日在工作的时候,遇上了一些和事件绑定有关的问题无法解决,于是在网上找到了以下资料,稍加整理了下. 对于事件绑定,jQuery的 bind / unbind 大多数时候可能并不会用到,取而代之的是直接 ...

  9. Android Studio修改程序包名

    我也是在网上看到的,并且这个方法只能这么修改:cn.example.xxx修改为cn.example.yyy ,修改到根目录下... refactor---rename修改  然后clean,buil ...

  10. Principal Component Analysis(PCA)

    Principal Component Analysis(PCA) 概念 去中心化(零均值化): 将输入的特征减去特征的均值, 相当于特征进行了平移, \[x_j - \bar x_j\] 归一化(标 ...