第一步:

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

第二步:

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

  放入lib中

第三步:

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

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Configuration>
  3. <Key Name="China">
  4. <Value Name="TextKey">China</Value>
  5. <Value Name="Enabled">true</Value>
  6. <Value Name="PhotoIDWidth">first PhotoIDWidth</Value>
  7. <Value Name="PhotoIDHeight">38</Value>
  8. <Key Name="Adult">
  9. <Value Name="CrownPercent">0.10</Value>
  10. <Value Name="HeadPercent">0.60AdultHeadPercent</Value>
  11. </Key>
  12. <Key Name="Child">
  13. <Value Name="CrownPercent">0.10</Value>
  14. <Value Name="HeadPercent">0.60ChildHeadPercent</Value>
  15. </Key>
  16. </Key>
  17. <Key Name="Australia">
  18. <Value Name="TextKey">Australia</Value>
  19. <Value Name="Enabled">true</Value>
  20. <Value Name="PhotoIDWidth">zhongjian PhotoIDWidth</Value>
  21. <Value Name="PhotoIDHeight">45</Value>
  22. <Key Name="Adult">
  23. <Value Name="CrownPercent">0.061</Value>
  24. <Value Name="HeadPercent">0.756"Adult"HeadPercent</Value>
  25. </Key>
  26. <Key Name="Child">
  27. <Value Name="CrownPercent">0.072</Value>
  28. <Value Name="HeadPercent">0.711ChildHeadPercent</Value>
  29. </Key>
  30. </Key>
  31. <Key Name="Austria">
  32. <Value Name="TextKey">Austria</Value>
  33. <Value Name="Enabled">true</Value>
  34. <Value Name="PhotoIDWidth">last PhotoIDWidth</Value>
  35. <Value Name="PhotoIDHeight">45</Value>
  36. <Key Name="Adult">
  37. <Value Name="CrownPercent">0.064</Value>
  38. <Value Name="HeadPercent">0.744AdultHeadPercent</Value>
  39. </Key>
  40. <Key Name="Child">
  41. <Value Name="CrownPercent">0.078</Value>
  42. <Value Name="HeadPercent">0.689ChildHeadPercent</Value>
  43. </Key>
  44. </Key>
  45. </Configuration>

第四部:

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

  

  1. package ReadJdom;
  2.  
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6.  
  7. import org.jdom2.Document;
  8. import org.jdom2.Element;
  9. import org.jdom2.JDOMException;
  10. import org.jdom2.input.SAXBuilder;
  11.  
  12. public class ReadJm {
  13. public static void main(String[] args) throws JDOMException, IOException {
  14. //新建构造器解析xml
  15. SAXBuilder sax = new SAXBuilder();
  16. //建一个文档去接受数据
  17. Document doc = sax.build("readjm.xml");
  18. //获取根元素
  19. Element root = doc.getRootElement();
  20. //定位到<Configuration> -> <Key>
  21. List<Element> list = root.getChildren("Key");
  22. List<Element> children = new ArrayList<Element>();
  23. List<Element> childrens = new ArrayList<Element>();
  24. System.out.println( list.size());
  25. for (int i = 0; i < list.size(); i++) {
  26. Element element =(Element) list.get(i);
  27. System.out.println(element.getAttributeValue("Name"));//第二层节点
  28. children = element.getChildren("Value");
  29. for (int j = 0; j < children.size(); j++) {
  30. //System.out.println(children.size());子节点下面有多少个位Value的KV
  31. Element elementC =(Element) children.get(j);//第三层节点
  32. //System.out.println(elementC.getAttributeValue("Name"));得到第三层节点属性为Name的值
  33. //定位到<Configuration> -> <Key> -> <Value Name="PhotoIDWidth">
  34. if(elementC.getAttributeValue("Name").equals("PhotoIDWidth")){
  35. //获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 属性值
  36. System.out.print("<--------->"+elementC.getAttributeValue("Name"));
  37. //获取<Configuration> -> <Key> -> <Value Name="PhotoIDWidth"> 标签里内容
  38. System.out.print(","+elementC.getText());
  39. }
  40. }
  41. children.clear();
  42. //定位到<Configuration> -> <Key> -> <Key>
  43. children = element.getChildren("Key");
  44. for (int k = 0; k < children.size(); k++) { //第三层节点
  45. Element elementChildren =(Element) children.get(k);
  46. //定位到<Configuration> -> <Key> -> <Key Name="Child">
  47. if(elementChildren.getAttributeValue("Name").equals("Child")){
  48. childrens = elementChildren.getChildren("Value");
  49. for (int j = 0; j < childrens.size(); j++) {//第四层节点
  50. Element elementChildrens =(Element) childrens.get(j);//注意这里是childrens <Value Name="CrownPercent">0.10</Value> 这里是第四层
  51. //定位到<Configuration> -> <Key> -> <Key Name="Adult"> -> <Value Name="HeadPercent">
  52. if(elementChildrens.getAttributeValue("Name").equals("HeadPercent")){
  53. System.out.println("<--------->"+elementChildrens.getText());
  54. }
  55. }
  56. }
  57. }
  58. }
  59. }
  60. }

 第五步:查看结果:

  

个人心得:

  今天也是刚用之前的都忘完了, 主要是你需要把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. vue项目-本机ip地址访问

    修改 在 vue项目文件夹中的 package.json scripts >dev 添加 --host 0.0.0.0 "dev": "webpack-dev-se ...

  2. 后端技术杂谈8:OpenStack架构设计

    本文转自互联网,侵删 本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutori ...

  3. cordova+vue做的app解决引入cordova-plugin-splashscreen后启动先显示黑屏在显示启动页

    先上项目目录结构cordova项目结构 android platform 结构 图中用红框框起来的为主要修改文件 这篇主要的讲cordova项目引用了cordova-plugin-splashscre ...

  4. [WCF REST] WebServiceHost 不依赖配置文件启动简单服务

    最近用WPF启动 WCF REST 服务,发现app.config 配置好烦,简单一个exe 可以到处搬动,还非得带一个累赘配置,不小心丢了程序就跑不起来. 最后决定,砍去WCF配置项,用WebSer ...

  5. docker 部署ftp

    1.搜索ftp镜像 docker search vsftpd 2.拉取ftp镜像 docker pull fauria/vsftpd 3.启动ftpdocker docker run -d -v /h ...

  6. JavaScript中的十种操作符

    ①   一元操作符(参与的只有一个变量) 前置递增递减(语句解析到递增/递减时值就被改变了) 后置递增递减(整个语句执行后值再改变) 递增递减也可用于字符串,布尔值,对象等,结果都将是数值:   ;v ...

  7. 为什么每次打出的包都是Release版本呢?

    参考了:xcodebuild命令 https://www.cnblogs.com/liuluoxing/p/8622108.html 重新打个包,验证一下想法

  8. mysql_DML_select_升序降序去重

    select *from wsb   limit 5;显示前5行 select *from students LIMIT  (m,n) (其中m是指记录开始的index,从0开始,表示第一条记录n是指 ...

  9. php中数组的指针

    利用PHP内置的函数 key() 获得键. current()获得值, next(); prev();移动到上一个 reset();//重置,移动到第一个元素 end();//移动到最后一个元素上 注 ...

  10. 部署 H3C CAS E0306

    目录 目录 前文列表 H3C CAS CVK Cloud Virtualization Kernel 虚拟化内核平台 CVMCloud Virtualization Manager 虚拟化管理系统 C ...