XML(四)dom4j解析XML
使用dom4j须要导入jar包
jar包下载地址:http://pan.baidu.com/s/1o65jWRw
将dom4j-1.6.1.jar包导入Eclipse
book2.xml
<?xml version="1.0" encoding="UTF-8"? > <书架>
<书>
<书名>JAVA</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
<书>
<书名>ANDROID</书名>
<作者>XXXXXX</作者>
<售价>23333</售价>
</书>
</书架>
解析book2.xml这个文件。
方法:
获取文档的根结点:
Element root = document.getRootElement();
获取某个结点的子节点
Element element = root.element();
获取某个结点下的全部子节点:
List elements = root.elements();
遍历该结点下的全部子节点
以递归的方式进行
public class dom4j { public static void main(String[] args) throws Exception {
// method_1();
method_2();
} private static void method_2() throws Exception {
SAXReader reader = new SAXReader();
Document document = reader.read("book2.xml");
Element root = document.getRootElement();
parse(root);
} private static void parse(Element ele) {
// 处理当前元素包括的全部属性
parseAttribute(ele);
// 获取当前元素包括的全部
List el = ele.elements();
for (Object e : el) {
Element element = (Element) e;
// 假设该元素的内容不是仅仅包括字符串
if (!element.isTextOnly()) {
parse(element);
} else {
// 处理当前 元素的所有属性
parseAttribute(element);
// 获取当前元素的内容
System.out.println(element.getQName().getName() + "-->"
+ element.getText());
}
}
} /**
* 处理元素属性
*
* @param ele
*/
private static void parseAttribute(Element ele) {
List attributes = ele.attributes();
for (Object e : attributes) {
Attribute attribute = (Attribute) e;
System.out.println(ele.getQName().getName() + "元素的"
+ attribute.getQName().getName() + "属性为"
+ attribute.getValue());
}
} private static void method_1() throws Exception {
// 获取解析器
SAXReader reader = new SAXReader();
// 解析xml获代替表整个文档的dom对象
Document document = reader.read("book2.xml");
// 获取根结点
Element rootElement = document.getRootElement();
// 获取书名
String bookName = rootElement.element("书").element("书名").getText();
System.out.println("bookName--: " + bookName);
} }
XML(四)dom4j解析XML的更多相关文章
- java基础 xml 使用dom4j解析 xml文件 servlet根据pattern 找到class
package com.swift.kaoshi; import java.io.File; import java.util.List; import java.util.Scanner; impo ...
- 【java项目实战】dom4j解析xml文件,连接Oracle数据库
简单介绍 dom4j是由dom4j.org出品的一个开源XML解析包.这句话太官方.我们还是看一下官方给出的解释.例如以下图: dom4j是一个易于使用的.开源的,用于解析XML,XPath和XSLT ...
- 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】
一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...
- dom4j解析xml文档全面介绍
一.dom4j介绍 dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的.dom4j是一个非常非常优秀的Java XML API,具有性能优异.功能强大和极端易用使用的特点, ...
- xml的Dom4j解析规则
一,xml的样本 <?xml version="1.0" encoding="utf-8"?> <contactList> <co ...
- Java进阶(二十七)使用Dom4j解析XML文件
使用Dom4j解析XML文件 写在前面的话 由于论文实验要求,需要实现操作XML文档,为此想到了dom4j这个工具,使用之后深感受益.在此分享给大家,以此共勉. 注:本文转载自http://blog. ...
- 源生API解析XML文档与dom4j解析XML文档
一.XML语言 XML是一种可扩展的标记语言,是一种强类型的语言,类似HTML(超文本标记语言,是一种弱类型的语言).XML是一种通用的数据交换格式(关系型数据库),综上所诉:XML可以传输数据,也可 ...
- 【学习笔记】关于DOM4J:使用DOM4J解析XML文档
一.概述 DOM4J是一个易用的.开源的库,用于XML.XPath和XSLT中.采用了Java集合框架并完全支持DOM.SAX.和JAXP. DOM4J最大的特色是使用大量的接口,主要接口都在org. ...
- Java中使用DOM4J来生成xml文件和解析xml文件
一.前言 现在有不少需求,是需要我们解析xml文件中的数据,然后导入到数据库中,当然解析xml文件也有好多种方法,小编觉得还是DOM4J用的最多最广泛也最好理解的吧.小编也是最近需求里遇到了,就来整理 ...
随机推荐
- 用java通过键盘输入若干个int,直到输入#结束
转 import java.util.ArrayList; import java.util.Scanner; public class Test { public static void main( ...
- P2258 子矩阵 (搜索,动态规划)
题目链接 Solution 搜索+DP. 刚好把搜索卡死的数据范围... 然后应该可以很容易想到枚举行的情况,然后分列去DP. 行的情况直接全排列即可,复杂度最高 \(O(C_{16}^{8})\). ...
- jsp实现文件下载,out = pageContext.pushBody();out.close();不用写到jsp中
测试jsp: <%@ page contentType="text/html; charset=gbk" %> <% try{ com.enfo.intrust. ...
- 升级springboot 2.x 踩过的坑——跨域导致session问题
目前IT界主流前后端分离,但是在分离过程中一定会存在跨域的问题. 什么是跨域? 是指浏览器从一个域名的网页去请求另一个域名的资源时,域名.端口.协议任一不同,都是跨域. 做过web后台的童鞋都知道,跨 ...
- Flask获取post提交数据
完成示例 # flask 代码 from flask import Flask,request ... @app.route('/get_tasks',methods=["POST" ...
- POJ3067 Japan
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26270 Accepted: 7132 Description Japa ...
- 【NOIP2016练习】T2 花花的聚会 (树形DP,倍增)
题意: 花花住在 H 国.H 国有 n 个城市,其中 1 号城市为其首都.城市间有 n 1 条单向道路.从任意一个城市出发,都可以沿着这些单向道路一路走到首都.事实上,从任何一个城市走到首都的路径是唯 ...
- 【Visual Studio】工程类型选择win32还是x64 ?
1. 如果将Visual Studio的工程类型设置为win32,那么我们开发的程序既能在32位操作系统上运行,也能在64位操作系统上运行. 2. 如果将Visual Studio的工程类型设置为x6 ...
- hdu 3189(网络流+二分枚举)
Steady Cow Assignment Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6422 Accepted: ...
- 微信小程序 之wx.getLocation()获取地理信息中的小坑
提到wx.getLocation()这个方法,大家都知道是获取地理信息的 今天用这个方法获取定位经纬度后传给后台取得附近markers标记集合, 在开发工具上都正常有标记出现 ,但是在手机测试时,死活 ...