微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建解析XML文件的三种解析方法二

用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"));

}

}

}

原文地址:https://www.jb51.cc/xml/298304.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。