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 }
复制代码

 

posted @   QiaoZhi  阅读(509)  评论(0编辑  收藏  举报
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示