当前位置: 首页 > news >正文

.net解析传过来的xml_DOM4J解析XML文件

*# 什么是解析XML?

相信一些初学者回经常听到反射,解析xml文件一类的词汇,但是究竟什么是解析什么是反射呢?

解析xmlwen文件

解析(parser):从xml中把我们需要的数据提取出来就是xml解析.

解析的分类:

JDK自带方式

* Dom解析

* SAX解析

第三方解析

* Dom4J

* JDOM

在xml中,最终所有的标签都跟顶级标签有关系的

DOM: document Object Model 文档对象模型(树状模型) :通过面向对象的方式把我们所需要的诗句提取出来就叫做Dom解析.

框架都是用dom4j解析的.

Rss阅读器也是通过解析就可以轻松实现的哦!!!!!

DOM4J特点: 性能优越,功能强大,及其易使用

给大家找到了一个关于SAX解析和DOM解析的比较,有兴趣的朋友可以看一下。

简单介绍完解析的分类接下来给大家讲解一下如何解析一个xml文件

解析web.xml案例

为了方便解析,我将写好的web.xml移动到src下(web.xml的内容是随便在其他练习工程中随便拷贝的)

然后进入jar包:dom4j-1.6.1.jar(我用到的jar包版本,点击打开后第一个

链接: link.)

接下来给大家详细解释一下如何解析我们的web.xml

package com.ambow.parser;import java.io.InputStream;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.SAXReader;public class ParserXml {public static void main(String[] args) throws Exception {// 创建读取流,将我们的目标文件读取出来InputStream in=ParserXml.class.getClassLoader().getResourceAsStream("web.xml");// 创建读取器SAXReader reader=new SAXReader(); // 用读取器中获取读取的对象Document document=reader.read(in);// 获取根节点(所有的解析xml,都需要先获取根节点,即根标签)Element root=document.getRootElement();// 获取根标签的名字和内容String rootname=root.getName();// 打印一下看看我们能否获取跟标签System.out.println(rootname);System.out.println("------------------------------");// Element servlet=root.element("servlet");// 过去跟标签后,我们继续向下寻找跟标签的子标签(爹(跟标签)找儿子(子标签))// 跟标签下有且有多个servlet和servlet-mapping标签,所以用集合List list=root.elements("servlet");List list1=root.elements("servlet-mapping");// 遍历读取标签中我们想要的信息for (Element e : list) {System.out.println(e.elementText("servlet-name"));System.out.println(e.elementText("servlet-class"));}System.out.println("----------------------------------------");// 遍历servlet-mapper标签的信息for (Element e1 : list1) {System.out.println(e1.elementText("servlet-name"));System.out.println(e1.elementText("url-pattern"));}}}

接下来是web.xml中的内容

<?xml version="1.0" encoding="UTF-8"?>DoSaveCheckUserActioncom.ambow.action.DoSaveCheckUserActionDoSaveCheckUserAction/dosavecheckuserDoLoginUserActioncom.ambow.action.DoLoginUserActionDoLoginUserAction/dologinDoCheckUnameActioncom.ambow.action.DoCheckUnameActionDoCheckUnameAction/checkunameDoCheckRegActioncom.ambow.action.DoCheckRegActionDoCheckRegAction/checkregDoCheckRegAction1DoCheckRegAction1com.ambow.action.DoCheckRegAction1DoCheckRegAction1/docheckDoFindLoginInfoActionDoFindLoginInfoActioncom.ambow.action.DoFindLoginInfoActionDoFindLoginInfoAction/findlastDoSavePubmessageActionDoSavePubmessageActioncom.ambow.action.DoSavePubmessageActionDoSavePubmessageAction/savepubmessageDoJoinPubActionDoJoinPubActioncom.ambow.action.DoJoinPubActionDoJoinPubAction/joinpubDoFindUserLikeActionDoFindUserLikeActioncom.ambow.action.DoFindUserLikeActionDoFindUserLikeAction/finduserlikeyanzhengmacom.ambow.action.YanZhengMayanzhengma/yanzhengmaDoFindFriendActioncom.ambow.action.DoFindFriendActionDoFindFriendAction/findfriendbyidDoDeleteFriendActionDoDeleteFriendActioncom.ambow.action.DoDeleteFriendActionDoDeleteFriendAction/deletefriendDoSaveFriendActionDoSaveFriendActioncom.ambow.action.DoSaveFriendActionDoSaveFriendAction/savefriendDoCheckFriendActionDoCheckFriendActioncom.ambow.action.DoCheckFriendActionDoCheckFriendAction/checkfriendDoCheckSuccessDoCheckSuccesscom.ambow.action.DoCheckSuccessDoCheckSuccess/checksuccessDoFindSmessageActionDoFindSmessageActioncom.ambow.action.DoFindSmessageActionDoFindSmessageAction/findsmessageDoSaveSmessageActionDoSaveSmessageActioncom.ambow.action.DoSaveSmessageActionDoSaveSmessageAction/savesmessageDoFindManagerDoFindManagercom.ambow.action.DoFindManagerDoFindManager/findmanagerDoupUserActionDoupUserActioncom.ambow.action.DoupUserActionDoupUserAction/upuserDoFindPubmessageActionDoFindPubmessageActioncom.ambow.action.DoFindPubmessageActionDoFindPubmessageAction/findmessageRefreshActionRefreshActioncom.ambow.action.RefreshActionRefreshAction/RefreshAction

运行代码,结果如下:

17b51dad18a64c8489f5b92b36e28899
190b37da571f415383863776fa2e1a82

————————————————

版权声明:本文为CSDN博主「薄荷旅馆」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_45294302/article/details/103416511

相关文章:

  • eclipse junit怎么不进入test代码?_TDD工具集:JUnit、AssertJ和Mockito (十八)编写测试-测试执行顺序\嵌套的测试
  • win程序 安装 跟踪_Python3.8程序安装就这几步
  • git 设置账号密码_【PyQt5】工具安装和环境设置2//A1.1
  • 视觉在无人驾驶中的应用及分类_机器视觉在自动化焊接中的应用
  • android混淆规则_最佳被虐——Android混淆文件生成器
  • python 图片处理模块_python Pillow 图片处理模块,好强大有没有
  • ubuntu安装python另一个版本_Ubuntu下python两个版本的切换
  • 前端中全部盒子靠左对齐_web前端入门必学的16个知识点,都来看一下吧
  • javaweb不同用户登录不同页面的页面_Javaweb知识点小总结
  • c语言选择排序_C语言必学的12个排序算法:简单选择排序(第6篇)
  • python合并视频和音频_Python实现五毛钱特效
  • gitlab账号密码登录不了_DevOps元素周期表—1号元素 Gitlab
  • python根据输入的三个数求平均分_Python 实现输入任意多个数,并计算其平均值的例子...
  • hive 字符串拼接_Hive行转列详解
  • idea 单元测试_java单元测试覆盖率统计
  • ES6 ...操作符
  • gops —— Go 程序诊断分析工具
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JAVA SE 6 GC调优笔记
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Java知识点总结(JavaIO-打印流)
  • JS字符串转数字方法总结
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • ReactNative开发常用的三方模块
  • VuePress 静态网站生成
  • 浮动相关
  • 检测对象或数组
  • 聚类分析——Kmeans
  • 聊聊sentinel的DegradeSlot
  • 普通函数和构造函数的区别
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 我的zsh配置, 2019最新方案
  • 正则学习笔记
  • 阿里云ACE认证之理解CDN技术
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • (day 12)JavaScript学习笔记(数组3)
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置
  • (十一)图像的罗伯特梯度锐化
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)程序员技术练级攻略
  • (转)用.Net的File控件上传文件的解决方案
  • (转载)(官方)UE4--图像编程----着色器开发
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .equals()到底是什么意思?
  • .Net 6.0 处理跨域的方式
  • .NET 8.0 发布到 IIS
  • .NET CORE Aws S3 使用
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .net 后台导出excel ,word
  • .net 受管制代码
  • .NET:自动将请求参数绑定到ASPX、ASHX和MVC(菜鸟必看)
  • .NET构架之我见