创建解析XML文件的三种解析方法(二)
2014-07-25 10:05
239 查看
用jdom解析
package jdom;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
publicclass jdom {
privatestatic String
xmlpath =
"jdom.xml";
publicstaticvoid main(String[] args)
throws Exception{
//resolving();
createXml();
}
//创建XML文件并添加节点
publicstatic
void createXml()
throws Exception{
//创建document对象
Document document =
new Document();
//创建根节点
Element root = new Element("students");
//将根节点添加到document对象中
document.addContent(root);
for(int i = 0 ;i < 20 ; i++){
//创建根元素节点
Element student =
new Element("student");
//声明参数ID
String id ="";
//循环生成一个9为的随机ID数
for(int j = 0; j< 9 ; j ++ ){
id += new Random().nextInt(8)+1;
}
//设置跟元素节点的属性
student.setAttribute("id",id);
//将根元素节点添加到根节点中
root.addContent(student);
//声明一个姓名的数组
String nameList[] = {"吕布","赵云","马超","张飞","关羽","许褚","孙策","周瑜","夏侯渊","张颌","于禁","黄忠","典韦","曹仁","程普"};
String sexList[] = {"男","女"};
//创建元素节点
Element name =
new Element("name");
Element sex =
new Element("sex");
Element age =new Element("age");
Element phone =
new Element("phone");
//设置根元素节点的文本值
name.setText(nameList[new Random().nextInt(nameList.length)]);
sex.setText(sexList[new Random().nextInt(sexList.length)]);
age.setText(new Random().nextInt(20)+20+"");
String tel ="";
for(int k = 0; k< 7 ; k++ ){
tel += new Random().nextInt(9);
}
phone.setText("0756-"+tel);
//将元素节点添加到根元素节点中
student.addContent(name);
student.addContent(sex);
student.addContent(age);
student.addContent(phone);
}
//设置XML输出排版
Format format = Format.getPrettyFormat();
XMLOutputter out =
new XMLOutputter(format);
//输出XML文件
out.output(document,
new FileOutputStream(xmlpath));
}
//解析XML文档
@SuppressWarnings("rawtypes")
publicstaticvoid resolving()
throws Exception{
//获取XML解析器
SAXBuilder builder =
new SAXBuilder();
//获取document对象
Document doucment = builder.build(xmlpath);
//获取根节点
Element students = doucment.getRootElement();
//获取根元素节点
List studentList = students.getChildren("student");
//循环获取元素文本值,第一种方法
for(int i = 0 ; i< studentList.size()
; i++ ){
Element student = (Element)studentList.get(i);
System.out.println("id = "+student.getAttributeValue("id")+"
name = "
+student.getChildText("name")+"
sex = "
+student.getChildText("sex")+"
age = "
+student.getChildText("age")+"
phone = "
+student.getChildText("phone"));
}
System.err.println("\n---------------------------------------------------------------------");
//循环获取元素文本值,第二种方法
for(Iterator iter=studentList.iterator();iter.hasNext();){
Element student = (Element)iter.next();
System.out.println("id = "+student.getAttributeValue("id")+"
name = "
+student.getChildText("name")+"
sex = "
+student.getChildText("sex")+"
age = "
+student.getChildText("age")+"
phone = "
+student.getChildText("phone"));
}
}
}
package jdom;
import java.io.FileOutputStream;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
publicclass jdom {
privatestatic String
xmlpath =
"jdom.xml";
publicstaticvoid main(String[] args)
throws Exception{
//resolving();
createXml();
}
//创建XML文件并添加节点
publicstatic
void createXml()
throws Exception{
//创建document对象
Document document =
new Document();
//创建根节点
Element root = new Element("students");
//将根节点添加到document对象中
document.addContent(root);
for(int i = 0 ;i < 20 ; i++){
//创建根元素节点
Element student =
new Element("student");
//声明参数ID
String id ="";
//循环生成一个9为的随机ID数
for(int j = 0; j< 9 ; j ++ ){
id += new Random().nextInt(8)+1;
}
//设置跟元素节点的属性
student.setAttribute("id",id);
//将根元素节点添加到根节点中
root.addContent(student);
//声明一个姓名的数组
String nameList[] = {"吕布","赵云","马超","张飞","关羽","许褚","孙策","周瑜","夏侯渊","张颌","于禁","黄忠","典韦","曹仁","程普"};
String sexList[] = {"男","女"};
//创建元素节点
Element name =
new Element("name");
Element sex =
new Element("sex");
Element age =new Element("age");
Element phone =
new Element("phone");
//设置根元素节点的文本值
name.setText(nameList[new Random().nextInt(nameList.length)]);
sex.setText(sexList[new Random().nextInt(sexList.length)]);
age.setText(new Random().nextInt(20)+20+"");
String tel ="";
for(int k = 0; k< 7 ; k++ ){
tel += new Random().nextInt(9);
}
phone.setText("0756-"+tel);
//将元素节点添加到根元素节点中
student.addContent(name);
student.addContent(sex);
student.addContent(age);
student.addContent(phone);
}
//设置XML输出排版
Format format = Format.getPrettyFormat();
XMLOutputter out =
new XMLOutputter(format);
//输出XML文件
out.output(document,
new FileOutputStream(xmlpath));
}
//解析XML文档
@SuppressWarnings("rawtypes")
publicstaticvoid resolving()
throws Exception{
//获取XML解析器
SAXBuilder builder =
new SAXBuilder();
//获取document对象
Document doucment = builder.build(xmlpath);
//获取根节点
Element students = doucment.getRootElement();
//获取根元素节点
List studentList = students.getChildren("student");
//循环获取元素文本值,第一种方法
for(int i = 0 ; i< studentList.size()
; i++ ){
Element student = (Element)studentList.get(i);
System.out.println("id = "+student.getAttributeValue("id")+"
name = "
+student.getChildText("name")+"
sex = "
+student.getChildText("sex")+"
age = "
+student.getChildText("age")+"
phone = "
+student.getChildText("phone"));
}
System.err.println("\n---------------------------------------------------------------------");
//循环获取元素文本值,第二种方法
for(Iterator iter=studentList.iterator();iter.hasNext();){
Element student = (Element)iter.next();
System.out.println("id = "+student.getAttributeValue("id")+"
name = "
+student.getChildText("name")+"
sex = "
+student.getChildText("sex")+"
age = "
+student.getChildText("age")+"
phone = "
+student.getChildText("phone"));
}
}
}
相关文章推荐
- 创建解析XML文件的三种解析方法(三)
- 创建解析XML文件的三种解析方法(一)
- Ruby程序中创建和解析XML文件的方法
- Android开发--XML文件的解析的三种方法
- Android三种解析xml文件的方法:SAX, PULL, DOM
- android 三种解析xml文件方法总结
- Android__三种XML文件解析方法
- Java解析网络数据流的三种特殊方法
- 使用PHP DOM-XML创建和解析XML文件
- Java解析网络数据流的三种特殊方法
- Java解析网络数据流的三种特殊方法
- Java解析网络数据流的三种特殊方法
- Java解析网络数据流的三种特殊方法介绍
- DB2 数据库中得到存储过程创建语句的三种方法
- Java解析网络数据流的三种特殊方法
- 四种解析XML文件的方法
- 创建XML文件的两种方法
- J2SE:Java解析网络数据流的三种特殊方法
- 创建XML文件的两种方法
- Java解析网络数据流的三种特殊方法