首页 技术 正文
技术 2022年11月10日
0 收藏 722 点赞 4,403 浏览 1877 个字

    接上一篇,本文介绍使用JDOM解析xml文档,

    首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初,

    JDOM作为一个开放源代码项目正式开始研发。JDOM是一种解析XML的Java工具包。

    JDOM基于树状结构,利用纯JAVA技术对XML文档实现解析、生成、序列化及其它操作。

    我们从以下步骤开始解析:

    (1)、通过JDOM的API创建一个SAXBuilder的对象

      SAXBuilder saxBuilder = new SAXBuilder();

    (2)、创建一个输入流,将xml文件加载到输入流中

      InputStream in = new FileInputStream(“src/res/books.xml”);

    (3)、通过saxBuilder  的builder()方法,将输入流加载到saxBuilder 中,返回一个Document对象的一个引用,

      Document document = saxBuilder.build(in );

然后我们通过document对象获取xml的根节点。

      Element rootElement = document.getRootElement();

      接下来我们就对xml 的子节点进行操作,获取根节点下子节点list集合。

      List<Element> bookList = rootElement.getChildren();

      遍历集合 bookList,获取子节点的名称和子节点的值,

      

for (Element book : bookList) {
List<Attribute> attrList = book.getAttributes();
for (Attribute attr : attrList) {
// 获取属性名
String attrName = attr.getName();
// 获取属性值
String attrValue = attr.getValue();
System.out.println("属性名:" + attrName + "----属性值:"
+ attrValue);
}
// 对book节点的子节点的节点名以及节点值的遍历
List<Element> bookChilds = book.getChildren();
for (Element child : bookChilds) {
System.out.println("节点名:" + child.getName() + "----节点值:"
+ child.getValue()); } }

     以下是books.xml

      

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book id="1">
<name>老人与海</name>
<author>海明威</author>
<year>1955</year>
<price>45</price>
</book>
<book id="2">
<name>书剑恩仇录</name>
<year>1959</year>
<price>24</price>
<language>chinese</language>
</book>
</bookstore>

输出的结果为:

  

属性名:id----属性值:1
节点名:name----节点值:老人与海
节点名:author----节点值:海明威
节点名:year----节点值:1955
节点名:price----节点值:45
属性名:id----属性值:2
节点名:name----节点值:书剑恩仇录
节点名:year----节点值:1959
节点名:price----节点值:24
节点名:language----节点值:chinese

这样我们最简单的JDOM解析xml文件就完成了,总结一个JDOM的优缺点。

  优点:   ①是基于树的处理XML的Java API,把树加载在内存中
         ②没有向下兼容的限制,因此比DOM简单
         ③速度快,缺陷少
         ④具有SAX的JAVA规则
   缺点:    
①不能处理大于内存的文档
         ②JDOM表示XML文档逻辑模型。不能保证每个字节真正变换。
         ③针对实例文档不提供DTD与模式的任何实际模型。
         ④不支持与DOM中相应遍历包
    最适合于:JDOM具有树的便利,也有SAX的JAVA规则。在需要平衡时使用。

      

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,487
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,903
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,736
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,487
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,127
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,289