第一步:

  装入jar包:下载地址:http://www.jdom.org/downloads/index.html

第二步:

  在项目中加入jar包 jdom-2.06.jar

  放入lib中

第三步:

  你需要有一个xml来,让你解析

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Key Name="China">
<Value Name="TextKey">China</Value>
<Value Name="Enabled">true</Value>
<Value Name="PhotoIDWidth">first PhotoIDWidth</Value>
<Value Name="PhotoIDHeight">38</Value>
<Key Name="Adult">
<Value Name="CrownPercent">0.10</Value>
<Value Name="HeadPercent">0.60AdultHeadPercent</Value>
</Key>
<Key Name="Child">
<Value Name="CrownPercent">0.10</Value>
<Value Name="HeadPercent">0.60ChildHeadPercent</Value>
</Key>
</Key>
<Key Name="Australia">
<Value Name="TextKey">Australia</Value>
<Value Name="Enabled">true</Value>
<Value Name="PhotoIDWidth">zhongjian PhotoIDWidth</Value>
<Value Name="PhotoIDHeight">45</Value>
<Key Name="Adult">
<Value Name="CrownPercent">0.061</Value>
<Value Name="HeadPercent">0.756"Adult"HeadPercent</Value>
</Key>
<Key Name="Child">
<Value Name="CrownPercent">0.072</Value>
<Value Name="HeadPercent">0.711ChildHeadPercent</Value>
</Key>
</Key>
<Key Name="Austria">
<Value Name="TextKey">Austria</Value>
<Value Name="Enabled">true</Value>
<Value Name="PhotoIDWidth">last PhotoIDWidth</Value>
<Value Name="PhotoIDHeight">45</Value>
<Key Name="Adult">
<Value Name="CrownPercent">0.064</Value>
<Value Name="HeadPercent">0.744AdultHeadPercent</Value>
</Key>
<Key Name="Child">
<Value Name="CrownPercent">0.078</Value>
<Value Name="HeadPercent">0.689ChildHeadPercent</Value>
</Key>
</Key>
</Configuration>

第四部:

  然后你需要有一个java来办这件事:

  

package ReadJdom;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder; public class ReadJm {
public static void main(String[] args) throws JDOMException, IOException {
//新建构造器解析xml
SAXBuilder sax = new SAXBuilder();
//建一个文档去接受数据
Document doc = sax.build("readjm.xml");
//获取根元素
Element root = doc.getRootElement();
//定位到<Configuration> -> <Key>
List<Element> list = root.getChildren("Key");
List<Element> children = new ArrayList<Element>();
List<Element> childrens = new ArrayList<Element>();
System.out.println( list.size());
for (int i = 0; i < list.size(); i++) {
Element element =(Element) list.get(i);
System.out.println(element.getAttributeValue("Name"));//第二层节点
children = element.getChildren("Value");
for (int j = 0; j < children.size(); j++) {
//System.out.println(children.size());子节点下面有多少个位Value的KV
Element elementC =(Element) children.get(j);//第三层节点
//System.out.println(elementC.getAttributeValue("Name"));得到第三层节点属性为Name的值
//定位到<Configuration> -> <Key> -> <Value Name="PhotoIDWidth">
if(elementC.getAttributeValue("Name").equals("PhotoIDWidth")){
//获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 属性值
System.out.print("<--------->"+elementC.getAttributeValue("Name"));
//获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 标签里内容
System.out.print(","+elementC.getText());
}
}
children.clear();
//定位到<Configuration> -> <Key> -> <Key>
children = element.getChildren("Key");
for (int k = 0; k < children.size(); k++) { //第三层节点
Element elementChildren =(Element) children.get(k);
//定位到<Configuration> -> <Key> -> <Key Name="Child">
if(elementChildren.getAttributeValue("Name").equals("Child")){
childrens = elementChildren.getChildren("Value");
for (int j = 0; j < childrens.size(); j++) {//第四层节点
Element elementChildrens =(Element) childrens.get(j);//注意这里是childrens <Value Name="CrownPercent">0.10</Value> 这里是第四层
//定位到<Configuration> -> <Key> -> <Key Name="Adult"> -> <Value Name="HeadPercent">
if(elementChildrens.getAttributeValue("Name").equals("HeadPercent")){
System.out.println("<--------->"+elementChildrens.getText());
}
}
}
}
}
}
}

 第五步:查看结果:

  

个人心得:

  今天也是刚用之前的都忘完了, 主要是你需要把xml读入doc中,然后去访问根结点,然后访问子节点然后这个时候子节点,你就需要存在一个list中,然后拿到根节点的子节点时,再去访问下个子节点。

java解析xml(使用jdom解析xml)的更多相关文章

  1. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  2. Java之JDOM生成XML和解析

    一.生成XML文件 1.JDOM是对Java原始的类进行了封装.让解析XML文件变得很方便 2.创建一个XML文件的根节点: Element root = new Element("HD&q ...

  3. Java中Jdom解析XML

    JDOM与DOM类似,也是一组用于解析XML的API,它本身不是一个解析器,默认的它内置了Apache的Xerces解析器:JDOM与DOM不同的是,DOM是跨语言的一套API,Java世界中有很多D ...

  4. JAVA JDOM解析XML 带CDATA数据

    import java.io.StringReader;import java.util.*; import org.jdom.Document;import org.jdom.Element;imp ...

  5. Java解析XML:Jdom解析和SAX解析

    今天看了Java解析XML的几种方法,记录一下 1.Jdom解析 (1)读取XML内容 private static void readXML() { // TODO Auto-generated m ...

  6. Java&Xml教程(六)使用JDOM解析XML文件

    JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...

  7. Java jdom解析xml文件带冒号的属性

    Java jdom解析xml文件带冒号的属性 转载请标明出处: https://dujinyang.blog.csdn.net/article/details/99644824 本文出自:[奥特曼超人 ...

  8. JAVA基础学习之XMLCDATA区、XML处理指令、XML约束概述、JavaBean、XML解析(8)

    1.CDATA区在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理.遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直 ...

  9. xml--通过jdom解析及生产XML

    JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序.它的设计包含 Java 语言的语法乃至语义. JAXP (用于 XML 语法分析的 Java API)包含了三个软 ...

  10. JDOM方法实现对XML文件的解析

    首先要下载JDOM.jar包,下载地址:http://download.csdn.net/detail/ww6055/8880371 下载到JDOM.jar包之后导入到工程中去. 实例程序: book ...

随机推荐

  1. 对async 函数的研究

    async 函数 1.ES2017 标准引入了 async 函数,使得异步操作变得更加方便. async 函数是什么?一句话,它就是 Generator 函数的语法糖. 前文有一个 Generator ...

  2. 英语单词Obsolete

    Obsolete 来源——命令帮助 [root@centos73 ~]# help typeset typeset: typeset [-aAfFgilrtux] [-p] name[=value] ...

  3. [STL]lower_bound&upper_bound

    源码 lower_bound template <class ForwardIterator, class T> ForwardIterator lower_bound (ForwardI ...

  4. Tomcat的配置文件server.xml叙述

    元素名属性解释 server port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown  指定向端口发送的命令字符串 servicename          指定service ...

  5. [CSP-S模拟测试]:赛(贪心+三分)

    题目描述 由于出题人思维枯竭所以想不出好玩的背景.有$n$个物品,第$i$个物品的价格是$v_i$,有两个人,每个人都喜欢$n$个物品中的一些物品.要求选出正好$m$个物品,满足选出的物品中至少有$k ...

  6. HDU4089 Activation(概率DP+处理环迭代式子)

    题意:有n个人排队等着在官网上激活游戏.Tomato排在第m个. 对于队列中的第一个人.有一下情况: 1.激活失败,留在队列中等待下一次激活(概率为p1) 2.失去连接,出队列,然后排在队列的最后(概 ...

  7. 获取相应头信息Response Headers的内容类型Content-Type

    Content-Type内容类型,也是键值对的形式: 我们在代码中获取: package com.zhi.httpClient2; import org.apache.http.Header; imp ...

  8. HTML/CSS点滴记录

    1. overflow 定义溢出元素内容区的内容会如何处理 visible 默认值.内容不会被修剪,会呈现在元素框之外. hidden 内容会被修剪,并且其余内容是不可见的. scroll 内容会被修 ...

  9. VS2012生成Web时报未能找到元数据文件xxx.dll

    问题:引用里已经添加了,还是报‘未能找到元数据文件xxx.dll’ 解决:添加了相同的不同路径的xxx.dll文件,删掉一个用不到的,就不报错了

  10. 微信小程序这一块(上)

    1.根目录下面的文件: 凡是以app开头的都是全局配置文件 app.js 全局逻辑文件 注册小程序 app.json 全局配置文件 https://developers.weixin.qq.com/m ...