XML文件解析
eclipse新建源文件的文件夹,编译后和src文件夹中放在一起
源文件
源文件的配置文件
测试文件
源文件的测试文件
一般用maven进行管理的时候就是这样
如果是小项目的话可能就src和resource这两个文件夹。
xml只能有一个根标签
相同类型对象定义同一个类型
核心内容就是xml
解析的方法有两种
1中是dom,所有的结点生成一个dom文档
2sax是一行一行的解析
dom的内存占用率大,sax占用的内存小
dom4j是一个jar包用于解析xml的
如果已经是有了一个xml文件进行解析想要获得值的话,还是要用的选择器啊。
- package com.practice.tuhooo;
- import java.util.List;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.Element;
- import org.dom4j.io.SAXReader;
- public class Xmlparse {
- // 先获得DOM树
- // Document在这里是dom4j里面的一个接口
- public static Document getDoc(String url) throws DocumentException {
- // 新建一个读取xml文件的java对象
- SAXReader reader = new SAXReader();
- // 以url为参数调用read()方法获取对应的xml文档的对象
- Document doc = reader.read(url);
- return doc; // 返回doc对象
- }
- public static void main(String[] args) throws DocumentException {
- Document doc = getDoc("conf/person.xml"); // 获得Document对象
- Element root = doc.getRootElement(); // 获得根结点
- List<Element> list = root.selectNodes("//age");
- // List<Element> list = root.selectNodes("//class_/student/age"); 效果和上面的一样
- System.out.println(list.size()); // 获得所有元素标签student的个数
- for (Element i : list) {
- System.out.println(i.getStringValue());
- }
- }
- }
- <?xml version="1.0" encoding="UTF-8"?>
- <class_>
- <student>
- <name>刘德华</name>
- <age>26</age>
- </student>
- <student>
- <name>梁朝伟</name>
- <age>24</age>
- </student>
- <student>
- <name>黄渤</name>
- <age>23</age>
- </student>
- <student>
- <name>刘老根</name>
- <age>24</age>
- </student>
- </class_>
这里遇到了一个问题很奇怪,当用根节点获取student结点并采取两种不同的打印方式来获取内容的时候出现了这种情况
- Element root = doc.getRootElement(); // 获得根结点
- List<Element> list = root.selectNodes("//student");
- // List<Element> list = root.selectNodes("//class_/student/age"); 效果和上面的一样
- System.out.println(list.size()); // 获得所有元素标签student的个数
- for (Element i : list) {
- System.out.println(i.getStringValue());
- }
- Element root = doc.getRootElement(); // 获得根结点
- List<Element> list = root.selectNodes("//student");
- // List<Element> list = root.selectNodes("//class_/student/age"); 效果和上面的一样
- System.out.println(list.size()); // 获得所有元素标签student的个数
- for (Element i : list) {
- System.out.println(i.getText());
- }
如果像下图这样加"sdf"的话,用getText()就可以打印出这个字符串,getText()是用来获取标签里面的文本的,终于解释地通了。
XML文件解析的更多相关文章
- 通过正则表达式实现简单xml文件解析
这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- android基础知识13:AndroidManifest.xml文件解析
注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...
- Android之AndroidManifest.xml文件解析
转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...
- 9.XML文件解析
一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...
- Python实现XML文件解析
1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...
- Python3将xml文件解析为Python对象
一.说明 从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementB ...
- XML文件解析-DOM4J方式和SAX方式
最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...
- java基础之概谈xml文件解析
XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...
- XML文件解析之JDOM解析
1.JDOM介绍 JDOM的官方网站是http://www.jdom.org/,JDOM解析用到的jar包可以在http://www.jdom.org/dist/binary/中下载,最新的JDOM2 ...
随机推荐
- Python之路-(js正则表达式、前端页面的模板套用、Django基础)
js正则表达式 前端页面的模板套用 Django基础 js正则表达式: 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- python Gunicorn
1. 简介 Gunicorn(Green Unicorn)是给Unix用的WSGI HTTP 服务器,它与不同的web框架是非常兼容的.易安装.轻.速度快. 2. 示例代码1 def app(envi ...
- 3个著名加密算法(MD5、RSA、DES)的解析
MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2.MD3和MD4发展而来. M ...
- 跟着思维导图学习javascript
1.javascript 变量 2.javascript 运算符 3.javascript 数组 4.javascript 流程语句 5.javascript字符串函数 6.javascript 函数 ...
- IOS开发UISearchBar失去第一响应者身份后,取消按钮不执行点击事件的问题
在iOS开发中,使用UISearchBar的时候,当搜索框失去焦点的时候,取消按钮是默认不能点击的,如图按钮的颜色是灰色的: 这是因为此时取消按钮的enabled属性被设置为NO了,那么当我们需要让 ...
- C++之路进阶codevs1242(布局)
1242 布局 2005年USACO 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold <:section class="hbox" ...
- ios下fixed回复框bug的解决方案
前几天做一个移动端的页面,要加个像微信那样附着在底部的回复框,按照做PC端网页的思路,首先是用fixed,在安卓上测了一下是好的,结果到朋友的iphone6p上就不行了,点击输入框之后它总会跳到屏幕中 ...
- github android
作者:ruijun 链接:https://www.zhihu.com/question/37160415/answer/79569042 来源:知乎 著作权归作者所有,转载请联系作者获得授权. ### ...
- sed tr 去除PATH中的重复项
最近发现由于自己不良的安装软件的习惯,shell的PATH路径包含了很多冗余的项.这里使用shell命令去除PATH的冗余项. export PATH=$(echo $PATH | sed 's/:/ ...
- Linux超快速安装Ruby on Rails
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文 http://www.flincllck.com/quick-ins ...