JDOM解析XML
来源:互联网 发布:js缺少对象,怎样调试 编辑:程序博客网 时间:2024/06/01 08:15
XML(eXtensibleMarkupLanguage)——可扩展标记语言,用户可以自己定义语言标记,只需要有开启和关闭标签即可。
在开发过程中,开发人员每天都在使用XML文件,但是如何操作读取这些文件呢?相关的技术有很多,例如传统的Dom、SAX和后来的JDOM、Dom4j等。 其实最先接触到的还是Dom4j,但是后来在学习中发现了JDOM,相比之下这两者还是挺相似的。下面就简单介绍一下JDOM。
JDOM主要是利用纯java技术对XML文档实现解析、生成、序列化以及多种操作的一个API函数。在 JDOM 中,XML 元素就是 Element 的实例,XML 属性就是 Attribute 的实例,XML 文档本身就是 Document 的实例。 下面是具体的操作:
首先需要准备jdom相关的jar包
jdom-jar下载地址:http://www.jdom.org/dist/binary/
其次需要引入相关jar包,这里我用的是jdom-1.1.3
一、使用JDOM方式创建XML文件
public class CreateXMLByJDOM {public static void main(String[] args ){//创建Document实例Document document = new Document();//创建根元素ContactList,并创建属性Element root = new Element("ContactList").setAttribute(new Attribute("Company","Acompany"));//根元素添加到Document对象中document.addContent(root);//创建元素LinkManElement contactPerson = new Element("LinkMan");//添加元素到根元素中root.addContent(contactPerson);//创建子元素contactPerson.addContent(new Element("name").setText("雨落天涯")) .addContent(new Element("company").setText("创宇集团")) .addContent(new Element("Telphone").setText("13745628456")) .addContent(new Element("Address") .addContent(new Element("Street").setText("朝阳街")) .addContent(new Element("City").setText("北京市"))); //使用XMLOutputter生产xml文档XMLOutputter xmlOut = new XMLOutputter();try{//调用XMLOutputter对象的output方法生成xml文档 xmlOut.output(document,new FileOutputStream("contact.xml"));System.out.println("Writing XML successed!");}catch(FileNotFoundException e){e.printStackTrace();}catch(IOException e){e.printStackTrace();}}}
生成 的XML文件 :
二、使用JDOM方式读取XML文件
先创建sample.xml文件
读取XML文件如下:
public class Sample {public static void main(String[] args) throws Exception {//创建一个SAXBuilder对象 SAXBuilder sb = new SAXBuilder(); //把整个文档当成一个对象Document doc = sb.build(Sample2.class.getClassLoader().getResource("sample.xml")); //root拿到这个文档的根对象Element root = doc.getRootElement(); System.out.println(root);//拿到根对象的HD/disk节点List list = XPath.selectNodes(root, "/HD/disk");System.out.println(list.size());////遍历根元素的子元素集合(即遍历list元素)for (int i = 0; i < list.size(); i++) {Element disk_element = (Element) list.get(i);String name = disk_element.getAttributeValue("name");String capacity = ((Text) XPath.selectSingleNode(disk_element,"//disk[@name='" + name + "']/capacity/text()")).getTextNormalize();String directories = ((Text) XPath.selectSingleNode(disk_element,"//disk[@name='" + name + "']/directories/text()")).getTextNormalize();String files = ((Text) XPath.selectSingleNode(disk_element,"//disk[@name='" + name + "']/files/text()")).getTextNormalize();//输出显示XML数据System.out.println("磁盘信息:");System.out.println("分区盘符:" + name);System.out.println("分区容量:" + capacity);System.out.println("目录数:" + directories);System.out.println("文件数:" + files);System.out.println("-----------------------------------");}}<span style="font-family:FangSong_GB2312;">}</span>
最终显示结果:
三、JDOM与DOM4j的比较 :
JDOM与DOM4j都是面向java语言开发的,JDOM是第一个java特定模型,所以在很多性能上很明显就比不上后来的DOM4j。例如第一,JDOM仅使用具体类而不使用接口。这在某些方面简化了API,但同时限制了灵活性。但DOM4J大量的使用了接口和抽象基本类方法。第二、JDOM自身不包含解析器,通常使用sax2解析器解析和验证输入XML文档。
- JDom,jdom解析xml文件
- XML解析----JDom解析XML
- 使用Jdom解析XML
- JDOM 与XML解析
- 解析xml之--JDOM
- xml文件解析-JDOM
- 使用JDOM解析XML
- 使用JDOM解析XML
- jdom解析xml文档
- 使用jdom解析xml
- JDOM解析XML文件
- 使用JDOM解析XML
- 使用JDOM解析XML
- java jdom 解析xml
- jdom解析xml
- JDOM解析XML文件
- Jdom解析xml文件
- jdom解析xml文档
- iReport常见和注意的问题
- (搜索)跳棋系列6
- Intent和PendingIntent的区别
- POJ 1201 差分约束
- Halcon—Tuple中符号的含义
- JDOM解析XML
- pip和easy_install使用方式及pygal安装方式
- cocos2dx 3.1.1 环境搭建 win环境
- Find Metal Mineral
- LeetCode OJ算法题(五十六):Insert Interval
- Fengshui(双向bfs看风水···)
- Android ActionBar动作栏
- KMP算法模板
- 【水字符】#55 A. Word