码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • XML解析


    目录

    一:解析思维导图:

    二:首先你需要配置好xml格式的文档

    三:获取java中配置文件的三种配置位置以及读取方式:

    1.在同包的情况下:

    2.根路径的情况下:

    根路径的查看方法:

    3.WIN-INF安全路径:

    dom4j(jar架包)的使用以及使用常用方法获取xml文件中元素和属性

    1.架包获取

    2.常用方法

    2.1.selectNodes(获取多个元素,小编用来获取根元素)

    2.2.selectSingleNode(获取单个元素)

    3.源代码:

    各位老板,麻烦点点赞,感谢阅读


    一:解析思维导图:

    二:首先你需要配置好xml格式的文档

    代码如下:

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

    三:获取java中配置文件的三种配置位置以及读取方式:

    1.在同包的情况下:

    Demo1.class.getResourceAsStream("config.xml");

    2.根路径的情况下:

    Demo1.class.getResourceAsStream("/config.xml");

    根路径的查看方法:

    右击项目之后,点击下图中蓝色区域:

     进入下图界面,选择Source就可以看到resources和src时同一目录下,小编将config文件放在了resource目录下,所以可以使用根目录的方法获取文件 

    3.WIN-INF安全路径:

    context.getResourceAsStream("/WEB-INF/config");

    dom4j(jar架包)的使用以及使用常用方法获取xml文件中元素和属性

    1.架包获取

    所用jar包 dom4j  

    架包下载

    xml解析架包  密码:hlx8

    2.常用方法

    2.1.selectNodes(获取多个元素,小编用来获取根元素)

    1. //获取根元素
    2. Element rootElement = doc.getRootElement();

    2.2.selectSingleNode(获取单个元素)

    1. //获取单个元素
    2. Element rootElement = doc.selectSingleNode();

    2.3.attributeValue(获取元素中的属性)

    1. String path = action.attributeValue("path");
    2. String type = action.attributeValue("type");

    2.4.getText(获取属性中的值)

    String path = action.getText();
    	

    3.源代码:

    1. package com.zking.mvc;
    2. import java.io.InputStream;
    3. import java.util.List;
    4. import org.dom4j.Document;
    5. import org.dom4j.DocumentException;
    6. import org.dom4j.Element;
    7. import org.dom4j.io.SAXReader;
    8. public class XmlRead {
    9. public static void main(String[] args) throws Exception {
    10. //通过流的方式,获取文件
    11. InputStream in = XmlRead.class.getResourceAsStream("/config.xml");
    12. //读取xml文件,并且帮我们进行解析
    13. SAXReader reader = new SAXReader();
    14. //读取之后放到doc中
    15. Document doc = reader.read(in);
    16. //获取根元素
    17. Element rootElement = doc.getRootElement();
    18. List<Element> actions = rootElement.selectNodes("/config/action");
    19. //循环遍历获取action下的属性
    20. for (Element action : actions) {
    21. String path = action.attributeValue("path");
    22. String type = action.attributeValue("type");
    23. List<Element> forwards = action.selectNodes("forward");
    24. //循环遍历获取forward下的属性
    25. for (Element forward : forwards) {
    26. String name = forward.attributeValue("name");
    27. String fpath = forward.attributeValue("path");
    28. String redirect = forward.attributeValue("redirect");
    29. System.out.println("name = " + name);
    30. System.out.println("fpath = " + fpath);
    31. System.out.println("redirect = " + redirect);
    32. }
    33. System.out.println("path = " + path);
    34. System.out.println("type = " + type);
    35. System.out.println("=================");
    36. }
    37. }
    38. }

    各位老板,麻烦点点赞,感谢阅读

  • 相关阅读:
    136. 只出现一次的数字
    【网路安全 --- Linux,window常用命令】网络安全领域,Linux和Windows常用命令,记住这些就够了,收藏起来学习吧!!
    如何合并pdf文件?多pdf文件合并技能分享
    Ubuntu22.04虚拟机配置双网
    springboot项目使用validated参数校验框架
    spring session 导致 HttpSessionListener 失效
    [附源码]java毕业设计青少年计算机知识学习系统
    Spring对JUnit的支持
    剑指offer--Day3
    Ubuntu Server版 之 共享文件 samba和NFS 两种方法
  • 原文地址:https://blog.csdn.net/qq_62881798/article/details/125607152
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号