XML解析

目录

IO流:

 JAVA中配置文件的三种配置位置及读取方式

dom4j的使用

​编辑 如何找到官网?

 xpath的使用

语法


首先我们需要勾选下面选项(上一篇博客勾选的两个也需要),不然没法运行

我们先来重温一下io流

IO流:

拿文件的时候会报错,因为这个文件可能会不存在,如下图:

 解决方法:直接抛出异常

 将图片复制出去的地址并取名字

File target=new File("D:\\cions02\\hh.png");
FileOutputStream out=new FileOutputStream(target);

如果想直接拿到原名

String name=f.getName();
File target=new File("D:\\cions02\\"+name);
FileOutputStream out=new FileOutputStream(target);

复制和关闭

//byte[] 数组  1024 每次复制的大小
byte[] tmp=new byte[1024];
while (in.read(tmp)!=-1) {
	out.write(tmp);
}
		
//关闭
in.close();
out.flush();
out.close();
System.out.println("ok");

 JAVA中配置文件的三种配置位置及读取方式

同包:Demo1.class.getResourceAsStream("db.properties");

根路径:Demo1.class.getResourceAsStream("/db.properties");

WIN-INF:context.getResourceAsStream("/WEB-INF/db.properties");

需要的包

第一个:更好的处理反射机制

第二个:日志(可以看到报错)

第三个:帮助我们解析xml文件的

第四个:使用XPath以简化dom4j查找节点时必须导入jaxen-1.1-beta-6.jar,否则会出现异常:NoClassDefFoundError: org/jaxen/JaxenException

第五个:一种语言规范,他把复杂的jsp函数封装成简单的<>标签形式,在写jsp页面的时候更方便一些。不用也能写页面,更方便而已。

第六个:连接MySQL的

第七个:容器服务(JSTL)

dom4j的使用

方法描述
selectNodes拿到多个节点
selectSingleNode拿到单个节点
attributeValue

返回指定属性值,如果属性不存在,返回空字符串

getText拿到元素文本
getRootElemnent拿到根元素

新建一个放源码的包

将源码放进去

<?xml version="1.0" encoding="UTF-8"?>
	<!--
		config标签:可以包含0~N个action标签
	-->
<config>
	<!--
		action标签:可以饱含0~N个forward标签
		path:以/开头的字符串,并且值必须唯一 非空
		type:字符串,非空
	-->
	<action path="/regAction" type="test.RegAction">
		<!--
			forward标签:没有子标签; 
			name:字符串,同一action标签下的forward标签name值不能相同 ;
			path:以/开头的字符串
			redirect:只能是false|true,允许空,默认值为false
		-->
		<forward name="failed" path="/reg.jsp" redirect="false" />
		<forward name="success" path="/login.jsp" redirect="true" />
	</action>

	<action path="/loginAction" type="test.LoginAction">
		<forward name="failed" path="/login.jsp" redirect="false" />
		<forward name="success" path="/main.jsp" redirect="true" />
	</action>
</config>

xml解析代码如下:

package com.pf.mvcdemo;

import java.io.InputStream;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

public class XmlReader {
	
	public static void main(String[] args) throws Exception {
		
		InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
		SAXReader reader=new SAXReader();
		Document doc=reader.read(in);
		
		Element root = doc.getRootElement();//根元素
		List<Element> actions = root.selectNodes("action");
		
		for (Element e : actions) {
			String path=e.attributeValue("path");
			String type=e.attributeValue("type");
			
			System.out.println("action path"+path);
			System.out.println("action type"+type);
			
			List<Element> forwards=e.selectNodes("forward");
			for (Element f : forwards) {
				String name = f.attributeValue("name");
				String fpath = f.attributeValue("path");
				String redirect=e.attributeValue("redirect");
				
				System.out.println("forward name"+name);
				System.out.println("forward fpath"+fpath);
				System.out.println("forward redirect"+redirect);
			}
			System.out.println("---------------------------------");
		}
	}

}

效果图如下:

 如何找到官网?

可以在下面网站查找dom4j

必应必应可帮助你将理论付诸实践,使得搜索更加方便快捷,从而达到事半功倍的效果。https://cn.bing.com/

我们就可以找到官网

 

 官网中有版本还有方法的使用


 xpath的使用

语法

/ :定位路径

@ :属性

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值