一.解析的对象

<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1">
<username>小丁</username>
<password>123</password>
</user>
<user id="2">
<username>小彭</username>
<password>123</password>
</user>
</users>

二.解析的方法介绍

  1.DOM(docuement object model)解析

   

    把所有的XML内容读到内存中,形成树状结构。这个树状结构是一个对象,名字叫docuement  

      DOM解析中的一些术语

       Doucment:整个对象(整颗数)

       Element:元素,就是标签,上面的users,user,username,password四个标签

       Attribute:属性,user标签中的id属性

          Text:文本,标签中的内容,上图最下面的叶子节点。

      Node:上面四个都可以叫Node   

      

  2.SAX(simple API for XML)

     SAX一条条读到内存并解析

三.代码实现

  使用dom4j(一个API,封装了我们需要的方法)   

  下载地址 https://dom4j.github.io/

  

  第一种实现 导入dom4j的jar:

package xmlDemo;

import java.io.File;
import java.util.List; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test; public class UserTest {
@Test
public void DOMTest() {
try {
SAXReader reader = new SAXReader();
// 读取要解析的xml文件
Document document = reader.read(new File("src/User.xml"));
// 获得根元素
Element rootElement = document.getRootElement();
// 获取根元素下的所有子元素
List<Element> elements = rootElement.elements();
for (Element element : elements) {
String username = element.element("username").getText();
String password = element.element("password").getText();
System.out.println("username=" + username + " password=" + password);
} } catch (DocumentException e) {
e.printStackTrace();
}
}
}

结果:

第二种XPath: 导入dom4j jar 包外还需导入

package xmlDemo;

import java.io.File;
import java.util.List; import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test; public class UserTest {
@Test
public void XPathTest() {
try {
SAXReader reader = new SAXReader();
// 读取要解析的xml文件
Document document = reader.read(new File("src/User.xml"));
// 获得根元素
Element rootElement = document.getRootElement();
//选择所有的username元素对象
List<Element> nodes = rootElement.selectNodes("//username");
for (Element element : nodes) {
System.out.println("username="+element.getText());
} } catch (DocumentException e) {
e.printStackTrace();
}
}
}

结果:

使用Java解析XML的更多相关文章

  1. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax; import org.xml.sax.Attributes; import org.xml.sax.SAXE ...

  2. java 解析XML文档

    Java 解析XML文档 一.解析XML文档方式: 1.DOM方式:将整个XML文档读取到内存中,按照XML文件的树状结构图进行解析. 2.SAX方式:基于事件的解析,只需要加载XML中的部分数据,优 ...

  3. Java 解析 XML

    Java 解析 XML 标签: Java基础 XML解析技术有两种 DOM SAX DOM方式 根据XML的层级结构在内存中分配一个树形结构,把XML的标签,属性和文本等元素都封装成树的节点对象 优点 ...

  4. JAVA解析XML的四种方式

    java解析xml文件四种方式 1.介绍 1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这 ...

  5. Java解析XML汇总(DOM/SAX/JDOM/DOM4j/XPath)

    [目录] 一.[基础知识——扫盲] 二.[DOM.SAX.JDOM.DOM4j简单使用介绍] 三.[性能测试] 四.[对比] 五.[小插曲XPath] 六.[补充] 关键字:Java解析xml.解析x ...

  6. Java解析XML文档(简单实例)——dom解析xml

      一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object ...

  7. 【Java】详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML.本文将详细介绍用Java解析XML的四种方法. AD: XML现在已经成为一种通用的数据交换格式,它的平台无关性,语 ...

  8. java解析xml的几种方式

    java解析xml的几种方式 DOM DOM的全称是Document ObjectModel,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称D ...

  9. java解析xml文件并输出

    使用java解析xml文件,通过dom4j,代码运行前需先导入dom4j架包. ParseXml类代码如下: import java.io.File; import java.util.ArrayLi ...

  10. 一个java解析xml的简单例子

    java解析xml,主要是通过Dom4j实现的,很多场合都会用到此功能,需要解析XML文件. 下面是一个简单的解析XML文件的例子: import java.util.Iterator; import ...

随机推荐

  1. ZKWeb网页框架1.9正式发布

    1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryStrin ...

  2. 2.SlidingMenu(侧边栏效果)

    > 使用步骤库:别的程序可以用它的方法.图片. 下载的其中一个框架的例子是没有actionBar的,example_update 引入出错可能是俩个v4包冲突了,删掉工程里的一个,不要删了库里的 ...

  3. Java学习笔记33(集合框架七:Collections工具类)

    数组有工具类,方面操作数组 集合也有工具类:Collections 常用方法示例: package demo; import java.util.ArrayList; import java.util ...

  4. mysql explain语法详解--优化你的查询

    原文地址:http://blog.csdn.net/zhuxineli/article/details/14455029 explain显示了mysql如何使用索引来处理select语句以及连接表.可 ...

  5. Spring Boot核心配置

    启动类 在包根目录下添加启动类,必须包含main方法,再添加Spring Boot启动方法: SpringApplication.run(SampleController.class, args); ...

  6. python numpy安装

    一.python下的numpy安装方法 第一步:安装python,这里不做介绍. 第二步:打开cmd看python是否安装成功. 第三步:输入 python -m pip install -U pip ...

  7. FTP上传心得

    最近出了一个问题就是在本地上传FTP没有一点问题 可是部署到服务器上.上传的时候总是false.解决办法 ftp.enterLocalPassiveMode();boolean storeFile = ...

  8. python异步编程--回调模型(selectors模块)

    目录 0. 参考地址 1. 前言 2. 核心类 3. SelectSelector核心函数代码分析 3.1 注册 3.2 注销 3.3 查询 4. 别名 5. 总结 6. 代码报错问题 1. 文件描述 ...

  9. 取消vim打开文件全是黄色方法

    如下图: 取消方法: 按下esc键 :nohl 回车

  10. 11.10 vue

    https://vuejs.org/js/vue.js ide   typora v-pre 指令 vuex text script . 语法 BCF 终端输入 node -v npm -v  包管理 ...