java jdom dom4j_Java操作XML牛逼利器JDOM&DOM4J

JDOM

JDOM 是一种使用 XML(标准通用标记语言下的一个子集) 的独特 Java 工具包,用于快速开发 XML 应用 程序。

利用JDOM生成xml:

1 packagecom.java1234.xml2;2

3 importjava.io.FileNotFoundException;4 importjava.io.FileOutputStream;5 importjava.io.IOException;6

7 importorg.jdom2.Attribute;8 importorg.jdom2.Document;9 importorg.jdom2.Element;10 importorg.jdom2.output.XMLOutputter;11

12 public classJDOM01 {13 public static voidmain(String[] args) {14 Element student=new Element("student");15 Attribute id=new Attribute("id", "001");16 Attribute aa=new Attribute("aa","xxx");17 student.setAttribute(id);18 student.setAttribute(aa);19 Element name=new Element("name");20 name.setText("张三");21 student.addContent(name);22 Element sex=new Element("sex");23 sex.setText("女");24 student.addContent(sex);25 Element age=new Element("age");26 age.setText("18");27 student.addContent(age);28 Document document=newDocument(student);29 XMLOutputter out=newXMLOutputter();30 out.setFormat(out.getFormat().setEncoding("utf-8"));31 try{32 out.output(document, new FileOutputStream("src/student2.xml"));33 } catch(FileNotFoundException e) {34 //TODO Auto-generated catch block

35 e.printStackTrace();36 } catch(IOException e) {37 //TODO Auto-generated catch block

38 e.printStackTrace();39 }40 }41 }

利用JDOM遍历xml文件:

文件为   students.xml

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4 张三

5 男

6 20

7

8

9 李四

10 女

11 18

12

13

java文件:

1 packagecom.java1234.xml2;2

3 importjava.util.List;4

5 importorg.jdom2.Document;6 importorg.jdom2.Element;7 importorg.jdom2.input.SAXBuilder;8

9 public classJDOM02 {10 public static void main(String[] args) throwsException {11 SAXBuilder builder=newSAXBuilder();12 Document document=builder.build("src/students.xml");13 Element students=document.getRootElement();14 List studentList=students.getChildren();15 for(int i=0;i

DOM4J

dom4j 是一个 Java 的 XML API,类似于 jdom,用来读写 XML 文件的。dom4j 是一个非常非常优秀的 JavaXML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件,可以在 SourceForge 上找到它。在 IBM developerWorks 上面可以找到一篇文章,对主流的 Java XML API 进行的性能、功能和易用性 的评测,dom4j 无论在哪个方面都是非常出色的。如今你可以看到越来越多的 Java 软件都在使用 dom4j 来读写 XML,特别值得一提的是连 Sun 的 JAXM 也在用 dom4j。这是必须使用的 jar 包, Hibernate 用它来读写配置文件。

利用DOM4J生成xml

1 packagecom.java1234.xml2;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileNotFoundException;6 importjava.io.FileOutputStream;7 importjava.io.IOException;8 importjava.io.UnsupportedEncodingException;9

10 importorg.dom4j.Document;11 importorg.dom4j.DocumentHelper;12 importorg.dom4j.Element;13 importorg.dom4j.io.OutputFormat;14 importorg.dom4j.io.XMLWriter;15 public classDOM4j01 {16 public static voidmain(String[] args){17 Document document=DocumentHelper.createDocument();18 Element studentElement=document.addElement("student");19 studentElement.addAttribute("id", "001");20 studentElement.addAttribute("aa", "xxx");21 Element name=studentElement.addElement("name");22 name.setText("张三");23 Element sex=studentElement.addElement("sex");24 sex.setText("女");25 Element age=studentElement.addElement("age");26 age.setText("18");27 OutputFormat format=OutputFormat.createPrettyPrint();28 format.setEncoding("utf-8");29 try{30 XMLWriter writer=new XMLWriter(new FileOutputStream("src/student3.xml"), format);31 try{32 writer.write(document);33 } catch(IOException e) {34 //TODO Auto-generated catch block

35 e.printStackTrace();36 }37 try{38 writer.close();39 } catch(IOException e) {40 //TODO Auto-generated catch block

41 e.printStackTrace();42 }43 } catch(UnsupportedEncodingException e) {44 //TODO Auto-generated catch block

45 e.printStackTrace();46 } catch(FileNotFoundException e) {47 //TODO Auto-generated catch block

48 e.printStackTrace();49 }50 }51 }

生成xml文件:

1 <?xml version="1.0" encoding="utf-8"?>

2

3 张三

4 女

5 18

6

利用DOM4J提取文件信息:

java代码:

1 packagecom.java1234.xml2;2

3 importjava.util.Iterator;4

5 importorg.dom4j.Document;6 importorg.dom4j.Element;7 importorg.dom4j.io.SAXReader;8

9 public classDOM4j02 {10 public static void main(String[] args)throwsException{11 SAXReader sr=newSAXReader();12 Document document=sr.read("src/students.xml");13 Element root=document.getRootElement();14 Iterator iter=root.elementIterator();15 while(iter.hasNext()){16 Element Studentelement=(Element) iter.next();17 System.out.println("学号 :"+Studentelement.attributeValue("id"));18 System.out.println("姓名 :"+Studentelement.elementText("name"));19 System.out.println("性别 :"+Studentelement.elementText("sex"));20 System.out.println("年龄 :"+Studentelement.elementText("age"));21 System.out.println("================");22 }23 }24 }

xml文件

1 <?xml version="1.0" encoding="UTF-8"?>

2

3

4 张三

5 男

6 20

7

8

9 李四

10 女

11 18

12

13

结果:

99e0061b31c19f43c26e2b40c31969d1.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值