xml解析

铁子们哈喽啊今天分享的是xml解析

老规矩分享前先看看思维导图

目录

一,java中配置文件的三种配置位置及读取方式

二,dom4j 的使用

三,xpath 的使用


一,java中配置文件的三种配置位置及读取方式

  配置文件有什么好处:
                1.使代码更加灵活

                2.维护性更高

  各个地方的位置有什么讲究
                答 :同一层级:方便同步编码

二,dom4j 的使用

经常用到

selectNodes             获取多个标签
selectSingleNode    获取单个标签
attributeValue           获取属性值
getText                      获取标签值

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<students>
 <student sid="s001">
  <name>小明</name>
 </student>
 <student sid="s002">
  <name>小芳</name>
 </student>
 <student sid='s003'>
  <name>小王</name>
 </student>
</students>

示例代码:

效果如下:

 

三,xpath 的使用

语法

1)   / :代表查找 

2)   @  代表精确定位

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<students>
 <student sid="s001">
  <name>小明</name>
 </student>
 <student sid="s002">
  <name>小芳</name>
 </student>
 <student sid='s003'>
  <name>小王</name>
 </student>
</students>

示例代码

package com.tsq.parse;
 
import java.io.InputStream;
import java.util.List;
 
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
 
public class Demo3 {
 public static void main(String[] args) throws Exception {
  // *[@id="__layout"]/div/div[2]/section/div[5]/div[2]/div[2]/ul/li[1]/div[2]/p[1]
  // /代表层级,代表查找
  // @精准定位
  InputStream in = Demo3.class.getResourceAsStream("students.xml");
  SAXReader sr = new SAXReader();
  Document doc = sr.read(in);
//  Element stus002 = (Element) doc.selectSingleNode("/students/student[@sid='s002']/name");
//  System.out.println(stus002.getText());
  Element studentsEle = (Element) doc.selectSingleNode("students");
  List<Element> stuEles = studentsEle.selectNodes("student");
  for (Element stuEle : stuEles) {
   if("s002".equals(stuEle.attributeValue("sid"))) {
    System.out.println(stuEle.selectSingleNode("name").getText());
   }
  }
  
  
  
 }
}

效果如下

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值