通过Digester动态读取xml配置文件

   核心代码:
//InspurGISconfig.xml    配置文件  ,我们的Digester最后就是要把这个文件的信息变成json 对象形式,这里定义三个类,remoteService,searchLayers,insertLayers ,每个类中都有自己的属性
<?xml version="1.0" encoding="UTF-8"?>
<InspurGISConfig defaultMapId="1">
 <remoteServices>                              
       <RemoteService id="mapservice1" serverAddress="" serverPort="" mapServiceName="" mapName=""  dataServiceName="" dataSourceName="">
      </RemoteService>
 </remoteServices>
 <searchLayers>
          <SearchLayer  id="searchlayer1"   searchLayerName=""  returnValue=""  limit="">     
          </SearchLayer>
</searchLayers>
<insertLayers>
    <InsertLayer id="insertLayer1" insertLayerName="" insertValue="">
    </InsertLayer>
</insertLayers>
</InspurGISConfig>
//这个是 解析上面config的rule文件
<?xml version="1.0" encoding="UTF-8"?>
<digester-rules>
    <pattern value="InspurGISConfig">
        <object-create-rule classname="com.inspur.mygis.xmlParse.XMLBeans.InspurGISConfig.InspurGISConfiguration"/>  //对应在文件中的javabean实体类
        <set-properties-rule>        
            <alias attr-name="*" prop-name="*"/>           //所有的属性信息都加载
        </set-properties-rule>    
        
        <pattern value="remoteServices/RemoteService">             
            <object-create-rule classname="com.inspur.mygis.xmlParse.XMLBeans.InspurGISConfig.RemoteService"/>
            <set-next-rule methodname="addRemoteService"/>
             <set-properties-rule>
                <alias attr-name="*" prop-name="*"/>
            </set-properties-rule>           
        </pattern>
        
        <pattern value="searchLayers/SearchLayer">
            <object-create-rule classname="com.inspur.mygis.xmlParse.XMLBeans.InspurGISConfig.SearchLayer"/>
            <set-next-rule methodname="addSearchLayer"/>
            <set-properties-rule>
                <alias attr-name="*" prop-name="*"/>
            </set-properties-rule>
        
        </pattern>
        <pattern value="insertLayers/InsertLayer">
            <object-create-rule classname="com.inspur.mygis.xmlParse.XMLBeans.InspurGISConfig.InsertLayer"/>
            <set-next-rule methodname="addInsertLayer"/>
            <set-properties-rule>
                <alias attr-name="*" prop-name="*"/>
            </set-properties-rule>
        </pattern>
 
    </pattern>
</digester-rules>
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
/////通过Digester进行转换
 URL ruleURL = Thread.currentThread().getContextClassLoader().getResource("rules/InspurGISConfigRule.xml");
        Digester dis = DigesterLoader.createDigester(ruleURL);
        dis.setUseContextClassLoader(true);
        
        InspurGISConfiguration inspurGISConfig = null;
        try {
            InputStream filePath = new FileInputStream(xmlparse);  //这里的xmlparse就是config的路径
            inspurGISConfig = (InspurGISConfiguration)dis.parse(filePath);  //转换之后为一个InspurGISconfiguration 的一个java实例
        }
 

转载于:https://www.cnblogs.com/j3eee/archive/2009/08/10/1542597.html

SSH框架整合配置所需JAR包(SSH整合) Hibernate Jar: 1、hibernate3.jar,这个是hibernate3.0的核心jar包,没的选,像我们常用的Session,Query,Transaction都位于这个jar文件中,必要。 2、cglib-2.1.3.jar,CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必要。 3、asm.jar ASM字节码库 如果使用“c 阅读详情

相关推荐

Java代码审计实战:XXE漏洞原理、挖掘与安全加固指南

XML外部实体注入(XXE)是一种常见的安全漏洞,其原理源于XML解析器默认支持外部实体引用,攻击者可借此读取服务器文件、发起内网请求或导致拒绝服务。在Java开发中,XML广泛应用于数据交换,但许多解析器如DocumentBuilder、SAXParser、DOM4J的SAXReader等默认启用外部实体解析,存在高风险。理解XXE的技术价值在于防范数据泄露与系统入侵,尤其在金融、政务等传统行业系统及微服务API场景中至关重要。本文基于Java代码审计实践,系统剖析XXE漏洞的挖掘路径,涵盖从特征搜索、数

weixin_33816821的博客 429

java digester_使用digester解析XML配置文件

解析文档的模型比较常用的有sax、dom、jdom、dom4j四种模型:sax是从上到下逐步读取,遍读边产生事件(解析),只读一次哈;由于这个特性呢,决定了这种读取方式不能随机访问,不能修改文件,这种模型最大的优点就是对于大型文件不会显得麻烦。如果我们想修改文件,或者随机访问呢;就得用到DOM模型了。DOM模型是先将XML文档全部读取到内存中,再解析。这种特性决定了,它解析文件占用大量内存,不能解...

weixin_36283702的博客 234

PyMySQLSaver实战:构建高可靠性的LangGraph状态管理

本文详细介绍了如何使用PyMySQLSaver构建高可靠性的LangGraph状态管理系统。通过检查点机制和MySQL持久化技术,开发者可以确保AI应用在崩溃后从最近状态恢复,支持长时间运行任务和多轮交互。文章包含核心架构解析、生产环境部署指南及实战案例,帮助开发者掌握状态管理的核心技术。

weixin_29310605的博客 495

用Digester读取XML文件

xml 代码 用Digester将XML文件读取到java中。 要导入的XML文件: xml 代码 xml version="1.0" encoding="GB2312"?&gt;   &lt;PACKET type="RESPONSE" version="1.0" &gt;   &lt;HEAD&gt;       &lt;REQUES

keke_wanwei 208

Kafka 系列 —(17)Kafka 流式处理:Kafka Streams架构、使用场景、框架选择

本文介绍了KafkaStreams的架构特点、应用场景及与其他流处理框架的比较。KafkaStreams作为嵌入式分布式流处理库,其核心架构包含流处理器、任务、拓扑和本地状态存储,具备自动容错和伸缩能力。适用于实时监控、ETL、聚合、Join、物化视图等低延迟场景。与Flink、Spark相比,KafkaStreams适合简单架构和微服务,而Flink适合大规模处理,Spark更适合批处理。选择框架需根据具体场景需求,如微服务推荐KafkaStreams,大规模处理推荐Flink。

moton2017的博客 1631

DSMA时序修复避坑指南:当Setup和Hold互卡时,除了调Margin还能做什么?

本文深入探讨DSMA时序修复中的Setup与Hold互锁问题,提供7种高阶策略,包括优先级判断、高级参数组合、单元类型智能替换等,帮助工程师突破时序收敛瓶颈。特别针对fix_eco_timing命令的隐藏参数和物理协同优化进行详细解析,助力芯片设计实现时序收敛。

weixin_30162121的博客 298

Digester解析XML文件

这是我的第一篇博客,基本都是从多个博客中借鉴过来,然后按照自己的理解整理了一下写的,第一次写博客不知道该注意什么,有不好的地方请指出,非常感谢 一、前言 SAX是基于文件流来解析xml文件的,在读取xml文件流时,SAX会通过节点来触发相应的操作,也可以说SAX是基于文件流的事情触发机制来解析xml文件的。 Digeter是apache的common项目,作用是将XML转化成对象,使...

weixin_45324483的博客 981

大数据国赛第2套任务C-子任务一特征工程

根据**Hudi**的dwd_ds_hudi库中相关表或MySQL中shtd_store中相关表(order_detail、sku_info),计算出与用户id为6708的用户所购买相同商品种类最多的前10位用户(只考虑他俩购买过多少种相同的商品,不考虑相同的商品买了多少次),将10位用户id进行输出,若与多个用户购买的商品种类相同,则输出结果按照用户id升序排序,输出格式如下,将结果截图粘贴至客户端桌面【Release任务C提交结果.docx】中对应的任务序号下;

weixin_44117248的博客 904

用Digester简化XML文档处理

         Digester框架属于Jakarta   Commons,它以规则和模式为基础处理XML文档。与SAX和DOM之类的标准API相比,Digester不涉及太多的细节问题,非常适合于对XML文档进行简单的处理。             在Java和XML开发中,一个常见的任务是把XML文档转换成对应的Java   Bean对象的层次结构。人们经常用标准的SAX和DOM   AP...

笨小孩 111

《网络摄像机实战⑦:嵌入式端AWS KVS IoT SDK 库编译与测试全流程-君正/瑞芯微/全志(超详细指南)》

本文介绍了AWS音视频和物联网解决方案的核心组件与集成方法。主要内容包括:1)Amazon Kinesis Video Streams(KVS)提供的WebRTC托管服务,支持实时音视频流传输与双向交互;2)AWS IoT云服务实现设备连接与集成;3)详细说明了KVS WebRTC库的编译过程,包括源代码下载、CMake配置和依赖库生成;4)KVS Producer库的集成方法,重点阐述了存储空间调整和mbedtls版本适配等关键修改点。文章为开发者提供了AWS音视频和物联网服务的技术实现指南,特别针对嵌入

lvj_158的专栏 109

在 NVIDIA DGX Spark 上运行 vLLM + Open WebUI

DGX Spark 和 GX10 都是性能强大的机器,但只有将它们视为交互式工作站而非精简版服务器,才能真正发挥它们的优势。合理利用共享资源,规划并发工作负载,并谨慎控制内存限制。做到这些,vLLM 与 Open WebUI 的结合就能成为可靠​​的日常工具,而不是脆弱的实验品。DGX平台本身价格不菲,但这并非体验此类硬件的唯一途径。多家厂商提供基于相同核心架构、价格更为亲民的系统,这些系统通常配备容量较小的固态硬盘或配置更为简化,但基本性能并未改变。

iCloudEnd的博客 1751

Digester 解析XML文件

TOmcat 、 struts2 都是利用digester解析复杂xml 为对应java对应,在其配置与javabean 之间,在改了配置后,只改对应javaBean而不用改其解析程序 转载: 利用Digester把XML转换为Java对象 在一个比较完整的应用系统里,经常需要有一些配置文件。简单的属性使用.properties文件即可,但要配置一些复杂对象,则应该考

天上满是飞机 863

042、双管反激的电压应力优势

【摘要】本文通过300W工业电源炸管案例,对比分析了单管与双管反激拓扑的电压应力差异。单管反激因漏感能量难以处理,尖峰电压可达1180V,需依赖RCD吸收电路但效率低下;双管反激通过钳位二极管将漏极电压限制在输入电压水平(实测650V),能量回馈使效率提升2-3%。虽增加两个MOS管,但可选用600V器件(单管需1200V),总成本反降15%以上。作者建议150W以上或高压输入场景优先采用双管反激,其确定的电压应力可显著提升可靠性,避免单管反激的参数玄学问题。关键设计要点包括快恢复二极管选型、紧凑布局及漏感

Jack010169的博客 87

XML解析工具Digester

  Digester是一款用于将XML转换为Java对象的事件驱动型工具,是SAX(另一种事件驱动型XML处理工具)的高层次封装。Digester针对SAX事件提供了更加友好的接口,隐藏了XML节点具体的层次细节,更加专注于处理过程。它最早作为Web框架Apache Steuts的一部分,后来考虑到通用性,移到了Apache Commons项目。 注意:尽管Tomcat使用了Digester API,但是并不依赖Apache Commons包,而是将其源代码直接包含到了Tomcat项目中,包路径于Apa

qq_42786253的博客 460

【工业级视觉实战】海康威视SDK + Python + YOLOv11:零延迟目标追踪系统落地指南

要在 Python 中调用海康 DLL,首先得把 C++ 的结构体 1:1 翻译过来。这是很多开发者踩坑最深的地方(指针错误、内存溢出)。import sys# 根据操作系统加载库else:# 定义设备信息结构体 (对应 C++ LPNET_DVR_DEVICEINFO_V30)("sSerialNumber", ctypes.c_byte * 48), # 序列号("byAlarmInPortNum", ctypes.c_byte), # 报警输入个数。

BUG猿的博客 229

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Tomcat架构解析之Digester

一、什么是Catalina?     Catalina包含了前面讲到的所有的容器组件,以及后面会涉及到的安全、会话、集群、部署、管理等Servlet容器架构的各个方面。他通过松耦合的方式集成Coyote,以完成按照请求协议进行数据读写。同时,他还包括我们的启动入口、Shell程序等。     如果以一个简单的模块依赖图...

weixin_42146366的博客 518

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Apache Commons Digester 学习指南

Apache Commons Digester 学习指南 1. 项目目录结构及介绍 Apache Commons Digester 是一个强大的工具,用于解析XML并根据预定义的规则映射到Java对象上。虽然直接从GitHub仓库提供精确的当前目录结构可能因版本更新而变化,但一般结构大致如下: src: 包含源代码,分为main和test两个部分。 main: 项目的主要源代码,包括核心逻辑实...

gitblog_00961的博客 671

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Apache Commons Digester 快速入门与实践

Apache Commons Digester 快速入门与实践 项目介绍 Apache Commons Digester 是一个强大的、基于Apache的Java库,它允许开发人员在XML文档被解析时,采用事件驱动的方式映射XML元素到Java对象上。通过定义一系列规则,Digester自动处理XML内容,执行像创建对象、调用方法等操作,从而简化XML配置文件的处理过程。这减少了手工编码的复杂度,...

gitblog_00653的博客 498

动态修改xml文件

接上篇文章动态修改properties文件,中的FileWacthdog.java作为父类,代码如下:   import org.apache.commons.digester.Digester; /** * &lt;p&gt; * Info: 动态加载collectionsFavourableActivity.xml文件,&lt;br /&gt; * 该文件使用 c...

facetoqiang的专栏 825

SQL文的管理和解析(一)利用Spring的Resource管理SQL的XML配置文件

在项目中,为了方便管理和修改SQL,我们一般会把SQL文放在一个专门的文件中,程序通过一个Key来访问这些SQL。Spring的资源管理做得非常好,我们的SQL资源就是用Spring进行管理的。1.SQL的格式        SQL是放在xml中的,一个典型的SQL配置文件如下:xml version="1.0" encoding="UTF-8"?>sqlList>sql sqlId="S

Free-从心开始 3887

java构建xml参数_Java中使用XML创建EMAIL模板

邮件模板让我们来看看邮件模板的格式。模板是XML文件,它包含一个根元素和一系列根的子元素。根元素是。必要的子元素是, , 和 。可选的子元素是 , , 和 。如果你使用过邮件系统,那么你可以推导出这些元素实际包含的内容。可选的元素有多个实例,所以你可以为每种类型的接收者指定多个地址。我待会会在描述消息处理的时候来解释运行机制。以下是一个模板文件的例子。rafe@rafe.ussomeone@exa...

weixin_34083972的博客 472

通信行业高并发批处理框架:水平拆分与异步派发实战

批处理是企业级系统中应对海量数据定时任务的核心技术,其本质是将大规模作业分解为可并行、可监控、可伸缩的子任务单元。在传统关系型数据库(如Oracle/DB2)与强事务场景下,单点IO瓶颈和同步阻塞调用常导致吞吐骤降、响应超时。通过水平拆分实现数据物理隔离,结合异步派发消除接口依赖阻塞,辅以参数化线程池动态适配流量峰谷,可显著提升秒级实时性保障能力。该方案广泛适用于运营商计费结算、金融批量代扣、政务数据同步等千万级用户、低延迟要求的生产环境,本文即基于真实电信项目落地经验,详解其轻量级工程实现路径。

baochuanying9531的博客 324

一篇关于apache commons类库的详解

Apache Commons类库 1.1. 开篇 在Java的世界,有很多(成千上万)开源的框架,有成功的,也有不那么成功的,有声名显赫的,也有默默无闻的。在我看来,成功而默默无闻的那些框架值得我们格外的尊敬和关注,Jakarta Commons就是这样的一个框架。如果你至少参与了一个中型规模的Java项目,那么我想有超过一大半的机会你都接触和使用到了Jakarta Commons,不管你自己

猫叔的专栏 1万+

Apache Commons 工具类

组件 描述 最新版本 发布日期 BCEL 字节码工程开发库:分析、创建和操作Java class文件。 5.2 2007-06-14 BeanUtils 对Java反射和自检(introspection)API的包装,让使用变得更加容易。 1.9.2 2014-05-29 BSF Bean脚本框架:包括JSR-233的脚本语言...

BusyMonkey 262

Tomcat源码解析

转载:http://www.blogjava.net/hlq37/archive/2011/01/20/343277.html   自己最近在学习Java Web编程,先是读了Sun公司的官方文档Java EE 5的tutorial(http://java.sun.com/javaee/5/docs/tutorial/doc/)中的关键章节,然后学了一阵Java Passion里的相关在线课程

雷雨中的双桅船 1345
上一篇: 给据配置文件动态加载tabpanel中的tab
下一篇: 数据集的概念 gis
developer2016
博客等级 码龄10年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值