.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
运行代码,结果如下:
————————————————
版权声明:本文为CSDN博主「薄荷旅馆」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45294302/article/details/103416511