亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

DOM4J讀寫xml文件(歡迎指教?。?/span>

標簽:
Java
                  生成xml文件

//运行示例:<?xml version="1.0" encoding="UTF-8"?>
<Students>
<student id="1">
<name>印寒</name><sex>女</sex><age>20</age><city>Beijing</city> </student>
<student id="2">
<name>林若允</name><sex>女</sex><age>20</age>
</student>
</Students>
//代码如下
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class DOM4J {

public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub
    //调用document类中的documenthelper中的createdocument方法

Document d=DocumentHelper.createDocument();
//添加开始标签
Element Students=d.addElement("Students");
//第一个学生 添加父节点
Element student=Students.addElement("student");
//添加父节点中的属性及属性值
student.addAttribute("id", "1");
//添加子节点
Element name=student.addElement("name");
Element sex=student.addElement("sex");
Element age=student.addElement("age");;
Element city=student.addElement("city");
//添加子节点值
name.addText("印寒");
sex.addText("女");
age.addText("20");
city.addText("Beijing");
//第二个学生
Element ls=Students.addElement("student");
ls.addAttribute("id", "2");
Element n=ls.addElement("name");
Element s=ls.addElement("sex");
Element a=ls.addElement("age");;
n.addText("林若允");
s.addText("女");
a.addText("20");
//创造一个打印方式
OutputFormat of=OutputFormat.createPrettyPrint();
//添加xml文件的编码
of.setEncoding("UTF-8");
//设置缩进长度
of.setIndentSize(4);
//写入xml文件名字,创建一个输入流文件
XMLWriter x=new XMLWriter(new FileOutputStream(new File("students.xml")));
//调用新建文档(document)
x.write(d);
x.close();
}}
解析xml文件
//运行示例:========开始遍历某个学生==========
节点是:id--节点值是:1
节点是:name--节点值是:印寒
节点是:sex--节点值是:女
节点是:age--节点值是:20
========结束遍历某个学生==========
========开始遍历某个学生==========
节点是:id--节点值是:2
节点是:name--节点值是:林若允
节点是:sex--节点值是:女
节点是:city--节点值是:Beijing
========结束遍历某个学生==========
学生的id是:1
学生的姓名是:印寒
学生的年龄是:20
学生的性别是:女
学生的地址是:null
学生的id是:2
学生的姓名是:林若允
学生的年龄是:null
学生的性别是:女
学生的地址是:Beijing
//代码如下:
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class DOM4JText {

public static void main(String[] args) throws DocumentException {
    // TODO Auto-generated method stub
    ArrayList<student>TS=new ArrayList<student>();//创建学生对象集合

SAXReader reader=new SAXReader();
Document document=reader.read(new File("src/res/students.xml"));
Element S=document.getRootElement();//获取根节点
Iterator it=S.elementIterator();//父节点集合
while(it.hasNext()){
student d=new student();
System.out.println("========开始遍历某个学生==========");
Element student=(Element) it.next();//遍历学生个数
List<Attribute> stulist=student.attributes();//遍历父节点
for(Attribute attr:stulist){
if(attr.getName()=="id")d.setId(attr.getStringValue());
System.out.println("节点是:"+attr.getName()+"--节点值是:"+attr.getStringValue());
}
Iterator child=student.elementIterator();//子节点集合
while(child.hasNext()){
Element childName=(Element)child.next();
if(childName.getName()=="name"){d.setName(childName.getStringValue());}
if(childName.getName()=="sex"){d.setSex(childName.getStringValue());}
if(childName.getName()=="age"){d.setAge(childName.getStringValue());}
if(childName.getName()=="city"){d.setCity(childName.getStringValue());}
System.out.println("节点是:"+childName.getName()+"--节点值是:"+childName.getStringValue());
}
System.out.println("========结束遍历某个学生==========");

TS.add(d);
d=null;//清空对象,方便下一次运行
}
//遍历学生对象集合
for(student t:TS){
System.out.println("学生的id是:"+t.getId());
System.out.println("学生的姓名是:"+t.getName());
System.out.println("学生的年龄是:"+t.getAge());
System.out.println("学生的性别是:"+t.getSex());
System.out.println("学生的地址是:"+t.getCity());

}
}
}
*不足之处望多多指教!谢谢!

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
4
獲贊與收藏
25

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消