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文件解析的更多相关文章

  1. 通过正则表达式实现简单xml文件解析

    这是我通过正则表达式实现的xml文件解析工具,有些XHTML文件中包含特殊符号,暂时还无法正常使用. 设计思路:常见的xml文件都是单根树结构,工具的目的是通过递归的方式将整个文档树装载进一个Node ...

  2. 八、Android学习第七天——XML文件解析方法(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...

  3. android基础知识13:AndroidManifest.xml文件解析

    注:本文转载于:http://blog.csdn.net/xianming01/article/details/7526987 AndroidManifest.xml文件解析. 1.重要性 Andro ...

  4. Android之AndroidManifest.xml文件解析

    转自:Android学习笔记之AndroidManifest.xml文件解析 一.关于AndroidManifest.xml AndroidManifest.xml 是每个android程序中必须的文 ...

  5. 9.XML文件解析

    一.XML简介 XML(EXtensible Markup Language),可扩展标记语言 特点:XML与操作系统.编程语言的开发平台无关 实现不同系统之间的数据交换 作用:数据交互 配置应用程序 ...

  6. Python实现XML文件解析

    1. XML简介 XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据,已经日趋成为当前许多新生技术的核心,在不同的领域都有着不同的应用.它是web ...

  7. Python3将xml文件解析为Python对象

    一.说明 从最开始写javascript开始,我就很烦感使用getElementById()等函数来获取节点的方法,获取了一个节点要访问其子孙节点要么child半天要么就再来一个getElementB ...

  8. XML文件解析-DOM4J方式和SAX方式

    最近遇到的工作内容都是和xml内容解析相关的. 1图片数据以base64编码的方式保存在xml的一个标签中,xml文件通过接口的方式发送给我,然后我去解析出图片数据,对图片进行进一步处理. 2.xml ...

  9. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

  10. XML文件解析之JDOM解析

    1.JDOM介绍 JDOM的官方网站是http://www.jdom.org/,JDOM解析用到的jar包可以在http://www.jdom.org/dist/binary/中下载,最新的JDOM2 ...

随机推荐

  1. Windows Server 2008 R2组策略创建用户桌面快捷方式

    问题: 如何让所有域用户桌面有一个公司共享的快捷方式,让所有域用户直接双击就能打开公司共享. 解决办法: 1.创建一个zhuyu组织单元 ----- 在zhuyu组织单元创建一个域用户user1. 2 ...

  2. Docker的容器

    容器是一个打包了应用和服务的环境,是一个轻量级的虚拟机,每一个容器都由一组特定的应用和必要的依赖库组成. 容器的管理操作 容器常见的命令:查看.创建.启动.终止和删除 创建容器 docker crea ...

  3. UDP server & client

    Server: import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSocket; ...

  4. Jenkins

    http://www.cnblogs.com/chowmin/category/598634.html

  5. 用Canvas制作简单的画图工具

    今天用Canvas制作了一个画图工具,非常简单,功能也不是很多,主要有背景网格,画线,画圆,画矩形和画圆角矩形,也用到了canvas的一些基本知识,在这里一一列举. 1.线段的绘制: 如何绘制真正的1 ...

  6. 命令行下Git的使用

    命令行下Git的使用 写在前边的话 以自己即将进行的毕设项目为例,进行Git使用的简易说明.不过由于校园网络的限制,故使用GitOSC. 快速开始 本次git使用位于自己的个人PC上,所以将个人的Gi ...

  7. android nfc中MifareClassic格式的读写

    Android支持的数据格式 数据格式的Intent filter AndroidManifest.xml文件中,要像向下列示例那样,在<activity>元素内的<meta-dat ...

  8. android studio ndk配置和ndk开发

    配置开发环境: 1:下载ndk,导入android studio中. 2:在项目中引入NDK   3:在计算机path变量中导入NDK路径,在编译.h文件的时候会用到. 一:建立java的native ...

  9. ExtJs combobox模糊匹配

    下拉列表模糊查询(重要代码): listeners : { beforequery : function(e) { var combo = e.combo; if(!e.forceAll){ var ...

  10. CDC的StretchBlt函数载入位图时图片失真问题

    最近遇到加载的bmp图片出现失真问题,查找得知需要用SetStretchBltMode函数设置拉伸模式. 函数原型:int SetSTretchBltMode(HDC hdc, int iStretc ...