当前位置: 首页 > news >正文

Dom4j解析xml内容——(三)

Dom4j取标签中的内容用 getText ,取开始标签和结束标签之间的值。

取属性值有两种方式:

 

Jar包:

XML原型:

<?xml version="1.0" encoding="utf-8"?>

<书架> 
  <> 
    <书名>Java高级</书名>  
    <作者>武陟县</作者>  
    <价格>200元</价格>  
  </>  
  <> 
    <书名 name="xxxxxxxxxxx">Java中级</书名>  
    <作者>打火机</作者>  
    <价格>2000元</价格> 
  </> 
</书架>

 

Java类

 1 package Dom4j_XMLParser;
 2 
 3 import java.io.File;
 4 
 5 import org.dom4j.Attribute;
 6 import org.dom4j.Document;
 7 import org.dom4j.DocumentException;
 8 import org.dom4j.Element;
 9 import org.dom4j.io.SAXReader;
10 import org.junit.Test;
11 
12 public class Demo1 {
13 
14 //    获取第二本书的书名
15     @Test
16     public void test1() throws Exception {
17 //        创建SAX读取器
18         SAXReader reader = new SAXReader();
19 //        加载文档
20         Document document = reader.read(new File("src/book.xml"));
21 //        获取根节点(书架)
22         Element root =  document.getRootElement();
23 //        获取根节点下的书节点,带s返回一个数组,再取数组的第二个
24         Element book = (Element) root.elements("书").get(1);
25 //        获取树下面的书名属性
26         Element shuming = book.element("书名");
27 //        获取书名开始标签与结束标签之间的值
28         String value = shuming.getText();
29         System.out.println(value);
30         
31     }
32     
33     
34 //    获取第二本书的书名中的属性  <书名 name="xxxxxxxxxxx">Java中级</书名>
35     @Test
36     public void test2() throws Exception {
37         SAXReader reader = new SAXReader();
38         Document document = reader.read(new File("src/book.xml"));
39         Element root =  document.getRootElement();
40         
41         Element book = (Element) root.elements("书").get(1);
42         Element shuming = book.element("书名");
43         
44 //        第一中方法
45 //        获取name属性
46         Attribute attribute = shuming.attribute("name");
47 //        获取name属性的值
48         String attrValue = attribute.getValue();
49 //        获取书名开始标签与结束标签之间的值
50         System.out.println(attrValue);   //xxxxxxxxx
51         
52 //        第二种方法(获取书名节点的name属性的值)
53         System.out.println(shuming.attributeValue("name"));  //xxxxxxxx
54         
55     }
56 }

 

相关文章:

  • javascript面向对象之创建对象
  • 由中序和后序重建二叉树
  • SpannableString实现TextView的链接效果
  • jquery.validate.js使用之自定义表单验证规则
  • 特斯拉Gigafactory将结合Silevo和松下HIT太阳能技术
  • 007-df和du的使用
  • thrift TTransport
  • 《浅谈图论模型的建立与应用》
  • 从顶层设计出发 联想集团与泛华集团共画中国智慧城市蓝图
  • 让SCv2000来拯救企业存储的选择困难症
  • 东软RealSight用大数据给企业做“天气预报”
  • 关于使用flying-saucer-pdf,实现xhtml2pdf
  • 做了一个小游戏,结项目,数数坑(animate,移动端长按出现菜单,touchmove,禁止微信上下滑屏)...
  • 黑客查理·米勒:用一个按键黑掉一辆车
  • php之变量
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Angularjs之国际化
  • docker python 配置
  • IOS评论框不贴底(ios12新bug)
  • java8-模拟hadoop
  • Js基础——数据类型之Null和Undefined
  • MySQL QA
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • PV统计优化设计
  • tensorflow学习笔记3——MNIST应用篇
  • Vue.js 移动端适配之 vw 解决方案
  • vue-router的history模式发布配置
  • 对象管理器(defineProperty)学习笔记
  • 翻译--Thinking in React
  • 高程读书笔记 第六章 面向对象程序设计
  • 简单实现一个textarea自适应高度
  • 两列自适应布局方案整理
  • 前言-如何学习区块链
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ​如何在iOS手机上查看应用日志
  • #前后端分离# 头条发布系统
  • #在 README.md 中生成项目目录结构
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (floyd+补集) poj 3275
  • (Matlab)遗传算法优化的BP神经网络实现回归预测
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理第3章 信息系统治理(一)
  • (万字长文)Spring的核心知识尽揽其中
  • (一)VirtualBox安装增强功能
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)为C# Windows服务添加安装程序
  • .class文件转换.java_从一个class文件深入理解Java字节码结构
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .Net(C#)自定义WinForm控件之小结篇
  • .net快速开发框架源码分享
  • .pyc文件是什么?
  • @Autowired和@Resource装配
  • @GlobalLock注解作用与原理解析