java解析xml(使用jdom解析xml)
第一步:
装入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)的更多相关文章
- Javaweb学习笔记——使用Jdom解析xml
一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...
- Java之JDOM生成XML和解析
一.生成XML文件 1.JDOM是对Java原始的类进行了封装.让解析XML文件变得很方便 2.创建一个XML文件的根节点: Element root = new Element("HD&q ...
- Java中Jdom解析XML
JDOM与DOM类似,也是一组用于解析XML的API,它本身不是一个解析器,默认的它内置了Apache的Xerces解析器:JDOM与DOM不同的是,DOM是跨语言的一套API,Java世界中有很多D ...
- JAVA JDOM解析XML 带CDATA数据
import java.io.StringReader;import java.util.*; import org.jdom.Document;import org.jdom.Element;imp ...
- Java解析XML:Jdom解析和SAX解析
今天看了Java解析XML的几种方法,记录一下 1.Jdom解析 (1)读取XML内容 private static void readXML() { // TODO Auto-generated m ...
- Java&Xml教程(六)使用JDOM解析XML文件
JDOM 提供了非常优秀的Java XML API来更方便的读取.修改.生成XML文档.JDOM还提供了包装类供用户从SAX.DOM.STAX事件解析.STAX流解析中选择具体的实现. 在本教程中,我 ...
- Java jdom解析xml文件带冒号的属性
Java jdom解析xml文件带冒号的属性 转载请标明出处: https://dujinyang.blog.csdn.net/article/details/99644824 本文出自:[奥特曼超人 ...
- JAVA基础学习之XMLCDATA区、XML处理指令、XML约束概述、JavaBean、XML解析(8)
1.CDATA区在编写XML文件时,有些内容可能不想让解析引擎解析执行,而是当作原始内容处理.遇到此种情况,可以把这些内容放在CDATA区里,对于CDATA区域内的内容,XML解析程序不会处理,而是直 ...
- xml--通过jdom解析及生产XML
JDOM是一种使用 XML 的独特 Java 工具包,用于快速开发 XML 应用程序.它的设计包含 Java 语言的语法乃至语义. JAXP (用于 XML 语法分析的 Java API)包含了三个软 ...
- JDOM方法实现对XML文件的解析
首先要下载JDOM.jar包,下载地址:http://download.csdn.net/detail/ww6055/8880371 下载到JDOM.jar包之后导入到工程中去. 实例程序: book ...
随机推荐
- Element ui 上传文件组件(单文件上传) 点击提交 没反应
element ui 第一次上传文件后 上传其他文件再次点击不再次提交 需要使用 clearFiles 清空已上传文件列表 这时候在次点击 上传按钮 就会惊喜的发现 可以上传了使用方法 this.$r ...
- Prometheus + Node Exporter + Grafana 监控主机运行信息
上一篇文章中讲了如何利用Prometheus和Grafana监控SpringBoot应用的JVM信息,这次就来看看如何监控 服务器运行状态,先列出用到的工具: Prometheus node_ex ...
- JS自定义 Map
<script>function HashMap(){this.map = {};}HashMap.prototype = { put : function(key, value){ th ...
- PKU P2411 Mondriaan's Dream
PKU P2411 Mondriaan's Dream 题目描述: Squares and rectangles fascinated the famous Dutch painter Piet Mo ...
- json和list转换
1.json转list List<TenantMember> tm= (List<TenantMember>)JSONArray.toCollection(JSONArray. ...
- (转)字符编码笔记:ASCII,Unicode 和 UTF-8
转:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html 今天中午,我突然想搞清楚 Unicode 和 UTF-8 之 ...
- Uva 12563 Jin Ge Jin Qu hao(01背包)
题意: 假定你在唱KTV,还剩下t秒时间.你决定接下来唱你最喜爱的n首歌(不包含劲歌金曲)中的一些歌曲.在时间结束之前再唱一个劲歌金曲.使得唱的歌的总曲目尽量多以及时间总长度. 输入保证所有n+1曲子 ...
- php面试专题---13、AJAX基础内容考点
php面试专题---13.AJAX基础内容考点 一.总结 一句话总结: ajax对提升用户速度,缓解服务器压力方面也是很有可取之处的,毕竟传递的数据少了 1.AJAX基础概念? Asynchronou ...
- python比C程序相比非常慢
w http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738136930 ...
- docker 保存镜像 加载镜像
1.保存镜像 docker save -o 保存的文件名 来源镜像 2.加载镜像 docker load -i 保存的文件名