java 生成和解析xml
本文主要使用的是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的更多相关文章
- dom4j生成和解析xml文件
dom4j生成和解析xml文件 要生成和解析如下格式的xml文件: <?xml version="1.0" encoding="UTF-8"?> & ...
- DOM4J生成、解析XML实例
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.Iterato ...
- JDOM生成、解析XML实例
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import j ...
- Java用SAX解析XML
要解析的XML文件:myClass.xml <?xml version="1.0" encoding="utf-8"?> <class> ...
- java Document生成和解析xml
转自:https://blog.csdn.net/p812438109/article/details/81807440 Document场景:需要知道文档所有结构 需要把文档一些元素排序 文档中的信 ...
- java使用sax解析xml
目的:解析xml文件,并存入mysql,并且要解析的字段能一一对应.这里解析的是微博的文件,想要利用里面的article和person_id字段. 思路: 为了能得到person_id和article ...
- android 67 生成和解析xml
生成xml: package com.itheima.createxml; import java.io.File; import java.io.FileNotFoundException; imp ...
- Java生成、解析二维码
今天遇到需求,使用Java生成二维码图片,网搜之后,大神们早就做过,个人总结一下. 目标:借助Google提供的ZXing Core工具包,使用Java语言实现二维码的生成和解析. 步骤如下: 1.m ...
- Java中Sax解析XML
SAX基于事件的解析,解析器在一次读取XML文件中根据读取的数据产生相应的事件,由应用程序实现相应的事件处理逻辑,即它是一种“推”的解析方式:这种解析方法速度快.占用内存少,但是它需要应用程序自己处理 ...
随机推荐
- python+requests接口自动化测试框架实例详解
python+requests接口自动化测试框架实例详解 转自https://my.oschina.net/u/3041656/blog/820023 摘要: python + requests实 ...
- 快速上手日期插件laydate
1.laydate 这款插件有独立版的,也有作为layui模块的,两种使用方式差不多,就引入有区别而已 <!--这是作为模块使用--><!DOCTYPE html> <h ...
- 简单的XMPP服务器与客户端交互
由客户端发起 C: <stream:stream to="localhost" xmlns="jabber:client" xmlns:stream=&q ...
- postgres常用命令
1.登录 psql -U pname -d database // pname 表示postgres的登录用户名,database 则表示要访问的数据库 2.查看所有的数据库 \l 3.查看所有的表 ...
- 2019 CCPC-Wannafly Winter Camp Day4(Div2, onsite)
slove 6/11 A.夺宝奇兵 Code:zz Thinking:zz 贪心即可.这条路线里,点n1和点n2肯定是相连的,接下来,点(n-1)1和点(n-1)2分别是和n1和点n2相连的,一共有两 ...
- linux 系统管理(2) 文件或目录数量统计
统计某文件夹下文件的个数 ls -l |grep "^-"|wc -l 统计某文件夹下目录的个数 ls -l |grep "^d"|wc -l 统计文件夹下文件 ...
- Mike
- Restful API学习笔记
之前关于这个概念在网上看了一些,看完似懂非懂,模模糊糊,发现专业术语或者说书面表达的形式对于理解这种十分抽象的概念还是低效了点. 书面文档方面看了以下几个: 理解本真的REST架构风格 1. 要深入理 ...
- python namedtuple命名元组
from collections import namedtuple Animal=namedtuple('Animal','name age type') perry=Animal(name='pe ...
- Android OpenGL教程-第三课【转】
第三课 给多边形上色: 作为第二课的扩展,我将叫你如何使用颜色.你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色. 这次增加的代码不算多. 增加一个color的buffer ...