• XML解析


    目录

    IO流:

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

    dom4j的使用

    ​编辑 如何找到官网?

     xpath的使用

    语法


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

    我们先来重温一下io流

    IO流:

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

     解决方法:直接抛出异常

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

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

    如果想直接拿到原名

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

    复制和关闭

    1. //byte[] 数组 1024 每次复制的大小
    2. byte[] tmp=new byte[1024];
    3. while (in.read(tmp)!=-1) {
    4. out.write(tmp);
    5. }
    6. //关闭
    7. in.close();
    8. out.flush();
    9. out.close();
    10. 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拿到根元素

    新建一个放源码的包

    将源码放进去

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <!--
    3. config标签:可以包含0~N个action标签
    4. -->
    5. <config>
    6. <!--
    7. action标签:可以饱含0~N个forward标签
    8. path:以/开头的字符串,并且值必须唯一 非空
    9. type:字符串,非空
    10. -->
    11. <action path="/regAction" type="test.RegAction">
    12. <!--
    13. forward标签:没有子标签;
    14. name:字符串,同一action标签下的forward标签name值不能相同 ;
    15. path:以/开头的字符串
    16. redirect:只能是false|true,允许空,默认值为false
    17. -->
    18. <forward name="failed" path="/reg.jsp" redirect="false" />
    19. <forward name="success" path="/login.jsp" redirect="true" />
    20. </action>
    21. <action path="/loginAction" type="test.LoginAction">
    22. <forward name="failed" path="/login.jsp" redirect="false" />
    23. <forward name="success" path="/main.jsp" redirect="true" />
    24. </action>
    25. </config>

    xml解析代码如下:

    1. package com.pf.mvcdemo;
    2. import java.io.InputStream;
    3. import java.util.List;
    4. import org.dom4j.Document;
    5. import org.dom4j.Element;
    6. import org.dom4j.io.SAXReader;
    7. public class XmlReader {
    8. public static void main(String[] args) throws Exception {
    9. InputStream in = XmlReader.class.getResourceAsStream("/config.xml");
    10. SAXReader reader=new SAXReader();
    11. Document doc=reader.read(in);
    12. Element root = doc.getRootElement();//根元素
    13. List<Element> actions = root.selectNodes("action");
    14. for (Element e : actions) {
    15. String path=e.attributeValue("path");
    16. String type=e.attributeValue("type");
    17. System.out.println("action path"+path);
    18. System.out.println("action type"+type);
    19. List<Element> forwards=e.selectNodes("forward");
    20. for (Element f : forwards) {
    21. String name = f.attributeValue("name");
    22. String fpath = f.attributeValue("path");
    23. String redirect=e.attributeValue("redirect");
    24. System.out.println("forward name"+name);
    25. System.out.println("forward fpath"+fpath);
    26. System.out.println("forward redirect"+redirect);
    27. }
    28. System.out.println("---------------------------------");
    29. }
    30. }
    31. }

    效果图如下:

     如何找到官网?

    可以在下面网站查找dom4j

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

    我们就可以找到官网

     

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


     xpath的使用

    语法

    / :定位路径

    @ :属性

  • 相关阅读:
    C++:回调函数的应用
    将组件发布到Maven中央仓库
    promise.catch和promise.then后的then是否会执行
    kubeadm init 初始化master节点踩坑合集【痛苦版】
    【高并发】不得不说的线程池与ThreadPoolExecutor类浅析
    华为HCIE实验题库哪里有?Cloud相关证书咋样?
    OpenCV图像处理——数字图像处理基本操作
    Linux上Qt和Opencv人脸识别项目学习路线(嵌入式/C++)
    Hadoop集群搭建的详细过程
    51单片机学习笔记_3 蜂鸣器,按键模块
  • 原文地址:https://blog.csdn.net/m0_67331668/article/details/125608443