JDOM 

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

JDOM 官方网站:http://www.jdom.org/

利用JDOM生成xml:

 package com.java1234.xml2;

 import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.jdom2.Attribute;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.XMLOutputter; public class JDOM01 {
public static void main(String[] args) {
Element student=new Element("student");
Attribute id=new Attribute("id", "001");
Attribute aa=new Attribute("aa","xxx");
student.setAttribute(id);
student.setAttribute(aa);
Element name=new Element("name");
name.setText("张三");
student.addContent(name);
Element sex=new Element("sex");
sex.setText("女");
student.addContent(sex);
Element age=new Element("age");
age.setText("18");
student.addContent(age);
Document document=new Document(student);
XMLOutputter out=new XMLOutputter();
out.setFormat(out.getFormat().setEncoding("utf-8"));
try {
out.output(document, new FileOutputStream("src/student2.xml"));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

利用JDOM遍历xml文件:

文件为   students.xml

 <?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="001">
<name>张三</name>
<sex>男</sex>
<age>20</age>
</student>
<student id="002">
<name>李四</name>
<sex>女</sex>
<age>18</age>
</student>
</students>

java文件:

 package com.java1234.xml2;

 import java.util.List;

 import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.input.SAXBuilder; public class JDOM02 {
public static void main(String[] args) throws Exception {
SAXBuilder builder=new SAXBuilder();
Document document=builder.build("src/students.xml");
Element students=document.getRootElement();
List studentList=students.getChildren();
for(int i=0;i<studentList.size();i++){
Element student=(Element) studentList.get(i);
String id=student.getAttributeValue("id");
String name=student.getChildText("name");
String sex=student.getChildText("sex");
String age=student.getChildText("age");
System.out.println("学号:"+id+" 姓名:"+name+" 年龄:"+age+" 性别: "+sex);
}
}
}

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 官方网站:http://www.dom4j.org

 利用DOM4J生成xml

 package com.java1234.xml2;

 import java.io.File;
import java.io.FileInputStream;
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 DOM4j01 {
public static void main(String[] args){
Document document= DocumentHelper.createDocument();
Element studentElement=document.addElement("student");
studentElement.addAttribute("id", "001");
studentElement.addAttribute("aa", "xxx");
Element name=studentElement.addElement("name");
name.setText("张三");
Element sex=studentElement.addElement("sex");
sex.setText("女");
Element age=studentElement.addElement("age");
age.setText("18");
OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
try {
XMLWriter writer=new XMLWriter(new FileOutputStream("src/student3.xml"), format);
try {
writer.write(document);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
writer.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

生成xml文件:

 <?xml version="1.0" encoding="utf-8"?>
<student id="001" aa="xxx">
<name>张三</name>
<sex>女</sex>
<age>18</age>
</student>

利用DOM4J提取文件信息:

java代码:

 package com.java1234.xml2;

 import java.util.Iterator;

 import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader; public class DOM4j02 {
public static void main(String[] args)throws Exception{
SAXReader sr=new SAXReader();
Document document=sr.read("src/students.xml");
Element root=document.getRootElement();
Iterator iter=root.elementIterator();
while(iter.hasNext()){
Element Studentelement=(Element) iter.next();
System.out.println("学号 :"+Studentelement.attributeValue("id"));
System.out.println("姓名 :"+Studentelement.elementText("name"));
System.out.println("性别 :"+Studentelement.elementText("sex"));
System.out.println("年龄 :"+Studentelement.elementText("age"));
System.out.println("================");
}
}
}

xml文件

 <?xml version="1.0" encoding="UTF-8"?>
<students>
<student id="001">
<name>张三</name>
<sex>男</sex>
<age>20</age>
</student>
<student id="002">
<name>李四</name>
<sex>女</sex>
<age>18</age>
</student>
</students>

结果:

Java操作XML牛逼利器JDOM&DOM4J的更多相关文章

  1. JAVA解析XML文件(DOM,SAX,JDOM,DOM4j附代码实现)

    1.解析XML主要有四种方式 1.DOM方式解析XML(与平台无关,JAVA提供,一次性加载XML文件内容,形成树结构,不适用于大文件) 2.SAX方式解析XML(基于事件驱动,逐条解析,适用于只处理 ...

  2. Java操作xml文件的jar包dom4j

    只能解析xml文件,不能解析普通的文件 https://www.cnblogs.com/sharpest/p/7877501.html

  3. java操作xml的一个小例子

    最近两天公司事比较多,这两天自己主要跟xml打交道,今天更一下用java操作xml的一个小例子. 原来自己操作xml一直用这个包:xstream-1.4.2.jar.然后用注解的方式,很方便,自己只要 ...

  4. Java操作XML的JAXB工具

    在java中操作XML的工作中中,比较方便的工具是JAXB(Java Architecture for XML Binding). 利用这个工具很方便生成XML的tag和Java类的对应关系.参照网上 ...

  5. Java操作XML文件 dom4j 篇

    在项目中,我们很多都用到了xml文件,无论是参数配置还是与其它系统的数据交互.今天就来讲一下Java 中使用dom4j来操作XML文件. 我们需要引入的包: //文件包 import java.io. ...

  6. 推荐一个 Java 里面比较牛逼的公众号!

    今天给大家推荐一个牛逼的纯 Java 技术公众号:Java技术栈,作者:栈长. Java程序员.Java爱好者扫码关注吧! 确实牛逼,几十万人关注了,原创文章350+,好友都 3000+ 关注了. 栈 ...

  7. 用java操作XML文件(DOM解析方式)

    XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ...

  8. Java操作xml文件

    Bbsxml.java public class Bbsxml { private String imgsrc; private String title; private String url; p ...

  9. java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解     1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...

随机推荐

  1. Xilinx HLS

    Xilinx 的高层次综合(High Level Synthesis, HLS)技术是将C/C++/SystemC软件语言转换成Verilog或VHDL硬件描述语言的技术.现已应用在SDAccel,S ...

  2. Long time no blogging

    It is a long time before I posted the last blog on myspace and seems that all of my blogs/documents ...

  3. (转)配置Spring管理的bean的作用域

    http://blog.csdn.net/yerenyuan_pku/article/details/52833477 Spring管理的bean的作用域有: singleton 在每个Spring ...

  4. 使用docker搭建gitlab 服务器

    本次使用的docker版本为 1.首先需要安装docker. 2.启动docker后,service docker start   3.拉取镜像  docker pull gitlab/gitlab- ...

  5. CAD交互绘制矩形框(网页版)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  6. function语句注意事项

    function语句 在Javascript中定义一个函数,有两种写法: function foo() { } 和 var foo = function () { } 两种写法完全等价.但是在解析的时 ...

  7. xshell通过xftp传输Windows文件到Linux:在输入put后,再摁 TAB 键,可显示当前文件夹的文件

    在输入put后,再摁 TAB 键,可显示当前文件夹的文件 sftp:/home/yan> put $Recycle.Bin\              BluestacksCN\         ...

  8. 【分享】 封装js操作textarea 方法集合(兼容很好)。

    请使用下面的btn操作. 虽然你现在看来没什么用,当要用的时候又到处找资料,还不如现在收集一下.         在DOM里面操作textarea里面的字符,是比较麻烦的. 于是我有这个封装分享给大家 ...

  9. 获得Dictionary所有key和value值

    Dictionary<string, string> dc = new Dictionary<string, string>(); dc.Add("code" ...

  10. uncategorized SQLException for SQL []; SQL state [99999]; error code [17004]; 无效的列类型: 1111; nested exception is java.sql.SQLException: 无效的列类型: 1111

    WHERE 的条件取值时添加上jdbcType=NUMBER这样的配置 参考[1]:https://blog.csdn.net/fyhjuyol/article/details/45483167