参考网站:http://blog.csdn.net/fulianglove/archive/2008/07/09/2627472.aspx
01.<!--********* foo.xml文件的内容 *************-->
02.
03.
04.
05.<foo-catgory>
06.
07.<foo name="foo1" count="10">
08.
09.<bar id="1" title="The First Child"/>
10.
11.<bar id="2" title="The Second Child"/>
12.
13.</foo>
14.
15.
16.
17.<foo name="foo2" count="20">
18.
19.<bar id="3" title="foo2 The First Child"/>
20.
21.<bar id="4" title="f002 The Second Child"/>
22.
23.</foo>
24.
25.</foo-catgory>
<!--********* foo.xml文件的内容 *************-->
<foo-catgory>
<foo name="foo1" count="10">
<bar id="1" title="The First Child"/>
<bar id="2" title="The Second Child"/>
</foo>
<foo name="foo2" count="20">
<bar id="3" title="foo2 The First Child"/>
<bar id="4" title="f002 The Second Child"/>
</foo>
</foo-catgory>view plaincopy to clipboardprint?
01.////**********************class Bar ****************
02.
03.package mypackage;
04.
05.
06.
07./**
08.
09.* <p>Titleigester类的api进行xml解析的简单例子 </p>
10.
11.*
12.
13.* <p>Description:对应于xml中的<foo-catgory>下的<foo>下<bar>元素 </p>
14.
15.*
16.
17.* <p>Copyright: Copyright (c) 2005</p>
18.
19.*
20.
21.* <p>Company: </p>
22.
23.*
24.
25.* @author [email]wdz123@hotmail.com[/email]
26.
27.* @version 1.0
28.
29.*/
30.
31.public class Bar {
32.
33.private int id;
34.
35.private String title;
36.
37.public int getId() {
38.
39.return id;
40.
41.}
42.
43.public void setId(int id) {
44.
45.this.id = id;
46.
47.}
48.
49.public String getTitle() {
50.
51.return title;
52.
53.}
54.
55.public void setTitle(String title) {
56.
57.this.title = title;
58.
59.}
60.
61.private void prints(String s) {
62.
63.System.out.println(" " + s);
64.
65.}
66.
67.public void print(String s) {
68.
69.prints(s + "---Bar.id=" + id + ",Bar.title=" + title);
70.
71.}
72.
73.}
////**********************class Bar ****************
package mypackage;
/**
* <p>Titleigester类的api进行xml解析的简单例子 </p>
*
* <p>Description:对应于xml中的<foo-catgory>下的<foo>下<bar>元素 </p>
*
* <p>Copyright: Copyright (c) 2005</p>
*
* <p>Company: </p>
*
* @author [email]wdz123@hotmail.com[/email]
* @version 1.0
*/
public class Bar {
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
private void prints(String s) {
System.out.println(" " + s);
}
public void print(String s) {
prints(s + "---Bar.id=" + id + ",Bar.title=" + title);
}
}view plaincopy to clipboardprint?
01.//****** * class Foo 的代码 ************
02.
03.
04.
05.package mypackage;
06.
07.
08.
09.import java.util.*;
10.
11.
12.
13./**
14.
15.* <p>Titleigester类的api进行xml解析的简单例子 </p>
16.
17.*
18.
19.* <p>Description:对应于xml中的<foo-catgory>下的<foo>元素 </p>
20.
21.*
22.
23.* <p>Copyright: Copyright (c) 2005</p>
24.
25.*
26.
27.* <p>Company: </p>
28.
29.*
30.
31.* @author [email]wdz123@hotmail.com[/email]
32.
33.* @version 1.0
34.
35.*/
36.
37.public class Foo {
38.
39.private HashMap list;
40.
41.private String name;
42.
43.private int count;
44.
45.public void addBar(Bar bar) {
46.
47.list.put(new Integer(bar.getId()), bar);
48.
49.}
50.
51.
52.
53.public Bar findBar(int id) {
54.
55.return (Bar) (list.get(new Integer(id)));
56.
57.}
58.
59.public Iterator getBars() {
60.
61.return
62.
63.list.keySet().iterator();
64.
65.}
66.
67.public String getName() {
68.
69.return name;
70.
71.}
72.
73.public int getCount() {
74.
75.return count;
76.
77.}
78.
79.public void setName(String n) {
80.
81.this.name = n;
82.
83.}
84.
85.public void setCount(int count) {
86.
87.this.count = count;
88.
89.}
90.
91.public Foo() {
92.
93.super();
94.
95.list = new HashMap();
96.
97.}
98.
99.
100.
101.public void print(){
102.
103.Iterator i = getBars();
104.
105.Bar b;
106.
107.int c = 0;
108.
109.while (i.hasNext()) {
110.
111.Integer ii = (Integer) i.next();
112.
113.b = findBar(ii.intValue());
114.
115.b.print(" Bar" + c++ +"---");
116.
117.}
118.
119.}
120.
121.}
122.<PRE class=java name="code">///*******************class FooCatgory 的代码 **************
123.
124.package mypackage;
125.
126.
127.
128.import java.util.LinkedList;
129.
130.import java.util.Iterator;
131.
132.
133.
134./**
135.
136.* <p>Title: Digester类的api进行xml解析的简单例子</p>
137.
138.*
139.
140.* <p>Description: :对应于xml文件中的<foo-catgory>元素 </p>
141.
142.*
143.
144.* <p>Copyright: Copyright (c) 2005</p>
145.
146.*
147.
148.* <p>Company: </p>
149.
150.*
151.
152.* @author [email]wdz123@hotmail.com[/email]
153.
154.* @version 1.0
155.
156.*/
157.
158.public class FooCatgory {
159.
160.LinkedList list = new LinkedList();
161.
162.
163.
164.public void addFoo(Foo p) {
165.
166.list.addLast(p);
167.
168.}
169.
170.private void prints(String s) {
171.
172.System.out.println(" " + s);
173.
174.}
175.
176.
177.
178.public void print() {
179.
180.prints("FooCatgory has " + list.size() + " elements");
181.
182.int c = 0; //
183.
184.Foo f;
185.
186.for (Iterator i = list.iterator(); i.hasNext(); ) {
187.
188.f = (Foo) i.next();
189.
190.prints(" Foo" + c++ +"---" + "Foo.name=" + f.getName() + ",Foo.count=" +
191.
192.f.getCount());
193.
194.f.print();
195.
196.}
197.
198.}
199.
200.}</PRE>
201.<PRE class=java name="code"><PRE class=java name="code">*********** class ParseXmlFile 的代码 *******************
202.
203.
204.
205.package mypackage;
206.
207.
208.
209.import org.apache.commons.digester.*;
210.
211.
212.
213./**
214.
215.* <p>Titleigester类的api进行xml解析的简单例子 </p>
216.
217.*
218.
219.* <p>Description: 使用Digester的api方法进行具体的解析xml文件,得到相应的java对象</p>
220.
221.*
222.
223.* <p>Copyright: Copyright (c) 2005</p>
224.
225.*
226.
227.* <p>Company: </p>
228.
229.*
230.
231.* @author [email]wdz123@hotmail.com[/email]
232.
233.* @version 1.0
234.
235.*/
236.
237.public class ParseXmlFile {
238.
239.public ParseXmlFile() {
240.
241.super();
242.
243.}
244.
245.
246.
247.private void parse(String sFileName) {
248.
249.Digester d = new Digester();
250.
251.//不进行XML与相应的DTD的合法性验证,如果设置=true,那应该有对应的dtd文件,并且在xml文件指出使用的dtd文件
252.
253.//digester.setValidating(false); //
254.
255.
256.
257.//创建根对象
258.
259.FooCatgory fooCatgory = new FooCatgory();
260.
261.
262.
263.//根对象进入对象栈(入栈,成为栈顶元素)
264.
265.d.push(fooCatgory);
266.
267.
268.
269.// 当遇到<foo>时创建一个mypackage.Foo对象,并且进入对象栈(入栈,成为栈顶元素)
270.
271.d.addObjectCreate("foo-catgory/foo", mypackage.Foo.class);
272.
273.
274.
275.// 根据<foo>元素的属性(attribute),对刚才创建的Foo对象的属性(property)进行设置
276.
277.d.addSetProperties("foo-catgory/foo");
278.
279.
280.
281.//当再次遇到<foo>的子元素<bar>时创建一个mypackage.Bar对象,并将其放在栈顶,同时父元素(fooCatgory对象)的addFoo方法。
282.
283.d.addSetNext("foo-catgory/foo", "addFoo");
284.
285.
286.
287.// 当遇到<bar>时创建一个mypackage.Bar对象,并将其放在栈顶(入栈,成为栈顶元素)
288.
289.d.addObjectCreate("foo-catgory/foo/bar", mypackage.Bar.class);
290.
291.
292.
293.// 根据<bar>元素的属性(attribute),对刚创建的Bar对象的属性(property)进行设置
294.
295.d.addSetProperties("foo-catgory/foo/bar");
296.
297.
298.
299.//当再次遇到<bar>时创建一个mypackage.Bar对象,并将其放在栈顶,同时调用父元素(Foo对象)的addBar方法。
300.
301.d.addSetNext("foo-catgory/foo/bar", "addBar", "mypackage.Bar");
302.
303.
304.
305.try {
306.
307.//开始解析Xml-- foo.xml 该文件必须放到project根目录下,和目录src同级目录
308.
309.d.parse(sFileName);
310.
311.}
312.
313.catch (java.io.IOException ioe) {
314.
315.System.out.println("IOException reading input file:" + ioe.getMessage());
316.
317.System.exit( -1);
318.
319.}
320.
321.catch (org.xml.sax.SAXException se) {
322.
323.System.out.println("SAXException Error parsing input file:" +
324.
325.se.getMessage());
326.
327.System.exit( -1);
328.
329.}
330.
331.catch (Exception ex) {
332.
333.System.out.println("Exception parse error!" + ex.getMessage());
334.
335.}
336.
337.
338.
339.//打印xml文件解析的结果
340.
341.fooCatgory.print();
342.
343.}
344.
345.
346.
347.public static void main(String[] args) {
348.
349.ParseXmlFile p = new ParseXmlFile();
350.
351.p.parse("foo.xml");
352.
353.}
354.
355.}</PRE>
356.</PRE>
分享到:
相关推荐
digerster 工具类 使用所需jar包
2024年欧洲化学电镀市场主要企业市场占有率及排名.docx
老人服务系统
Elasticsearch是一个基于Lucene的搜索引擎,它提供了一个分布式、多租户能力的全文搜索引擎,具有HTTP web接口和无模式的JSON文档。Elasticsearch是用Java编写的,但也可以作为服务在多种操作系统上运行,包括Windows、Linux和macOS。 ### Elasticsearch的主要特点包括: 1. **分布式性质**:Elasticsearch天生设计为分布式,可以很容易地扩展到数百台服务器,处理PB级别的数据。 2. **实时搜索**:Elasticsearch提供了快速的搜索能力,可以实时索引和搜索数据。 3. **高可用性**:通过自动分片和复制,Elasticsearch确保了数据的高可用性和容错性。 4. **多租户**:Elasticsearch支持多租户,允许多个用户或应用共享同一集群资源。 5. **丰富的查询语言**:Elasticsearch提供了强大的查询语言,支持结构化、非结构化数据的复杂搜索需求。 6. **横向扩展**:Elasticsearch可以通过简单地增加节点来扩展集群。 等
JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告)
2024高频作业题答案.zip
信捷DS5L1DS5C1DS5N1DS5K1DS5L2DS5C2伺服驱动器CAD图纸
基于PHP+python开发的系统快照的入侵检测系统+源码+开发文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 环境要求 linux python 2.6/2.7 php&mysql&apache/nginx ###python端 介绍 config目录 存放用户自定义配置文件config.ini ,进程黑白名单和后门敏感关键字 include目录 存放程序配置文件 module目录 存放系统快照功能模块,模块编写按照里面的ids_framework框架编写。 main.py 主文件 ###php端 介绍 前端采用bootstrap+jquery设计而成 ###运行 先新建数据库ids并把ids.sql导入 运行 python main.py ###总结 每当执行一次main.py后,ids就能发现所检测功能里所有发生的新变化,并且对这些新发生的变化进行危害分析,从而达到入侵检测的效果。
附件为《tomcat9memcache依赖jars.zip》,主要用于补充tomcat9配置memcache时需要依赖的jar包,解压后将jar文件放到tomcat_home/lib目录下。 tomcat9 + memcache 用于解决分布式web环境实现session共享。
单片机实验——按键实验 单片机实验——按键实验 按下key1时,数码管显示的数字加1,从0到F循环,同时led1指示灯在按键按下时熄灭,释放后亮起。
永磁同步电机矢量控制算法仿真
互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对汽车客运站售票信息管理混乱,出错率高,信息安全性差,劳动强度大,费时费力等问题,采用汽车客运站管理系统可以有效管理,使信息管理能够更加科学和规范。 汽车客运站管理系统在Eclipse环境中,使用Java语言进行编码,使用Mysql创建数据表保存本系统产生的数据。系统可以提供信息显示和相应服务,其管理员负责售票管理员和检票管理员的信息管理,对车辆,售票和车辆调度信息执行管理,并统计车辆的售票数据。售票管理员查看公告,登记车辆售票信息。检票管理员查看公告,查看售票信息,在线检票。 总之,汽车客运站管理系统集中管理信息,有着保密性强,效率高,存储空间大,成本低等诸多优点。它可以降低信息管理成本,实现信息管理计算机化。 关键词:汽车客运站管理系统;Java语言;Mysql
基于Springboot+Vue的智慧养老服务管理系统源码+项目使用说明(优秀毕业设计).zip 该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设、课设的学生使用,也可作为项目实战演练,可直接作为课程设计、期末大作业、毕设等。 1.项目代码功能经验证ok,确保稳定可靠运行。欢迎下载使用!在使用过程中,如有问题或建议,请及时私信沟通。 2.主要针对各个计算机相关专业,包括计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师或企业员工使用。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈! 介绍 随着人口老龄化趋势的加剧,老年人口比例不断增加,传统的养老服务模式已经难以满足现代老年人的多元化需求。因此,如何高效、精准地提供养老服务,成为了社会关注的焦点。信息化与智能化的发展为养老服务带来了新的机遇。智慧养老作为新兴的养老服务模式,正逐步改变传统的养老服务格局。 #### 安装教程 1. 运行环境准备mysql8+java8+npm14.16.1 2. 配置maven路径,加载依赖 3. 运行sql文件,确保application.yml的数据库名称和账号密码是数据库所在主机的账号密码 #### 使用说明 1. 登入 账号:admin 密码:admin 账号:user 密码:123456 2.运行流程 前端初始化指令: > npm install 前端运行指令(有两个端,一个是管理端,一个是用户端): > npm run serve #### 项目演示 + 普通用户 访问者可以在最顶端看到系统的导航栏,根据自己的需求点击需要去到的页面。用户可以单击“入院指南”,在入院指南界面的输入框中输入标题并进行搜索,就可以查看标题、发布时间、注意事项、发布人、封面等其他信息,在个人中心界面中,可以看见家属的账号、密码和性别等基本信息,还可以对这些信息进行更新操作。 ![GIF 2024-6-17 19-49-40](GIF 2024-6-17 19-49-40-1718630421956.gif) + 管理员 管理员单击家属管理,在家属管理页面中输入家属的各项信息后,在页面中进行查询、新增或删除家属信息等操作。管理员点击护工管理,在护工管理页面中输入护工的所有信息,然后在页面上可以点击详情来查看护工的详细情况,点击修改来修改护工的信息,点击删除来删除护工的信息。管理员单击房间资料管理,在这个页面中可以对房间资料的信息进行管理。管理员单击床位管理,可以查看房间号、楼房名称等各项信息,还可以点击修改来修改床位信息,点击删除来删除床位信息。管理员还可以对老人入住进行管理,在这个界面中可以查看像入住编号、老人年龄等老人入住的详细信息,可以在界面顶端输入具体信息来查找,还可以点击删除来进行删除操作。管理员单击外出报备管理,在外出报备管理界面中可以查看老人的外出报备情况。
c语言编译器(python版)使用python语言编写的c语言编译器,使用LL1文法进行语法分析,有完整的文法规则。利用c语言的空语句解决了左递归的问题。1
CC2530中文数据手册完全版
Fortran程序语言基础  吴言以对 8 人赞同了该文章 1. Fortran的基础知识 发展历史 Fortran的发展可以追溯到20世纪50年代,由IBM的John Backus领导的团队开发,目的是为了简化计算机程序的编写,特别是科学计算和工程计算。从最早的Fortran I到现在的Fortran 2008和2018,Fortran语言经历了多次重大更新,每次都增加了新的功能和改进,以支持现代计算需求,例如并行计算和高性能计算。 特点 高性能:Fortran在数组操作和数值计算方面非常高效,特别适合需要大量数学计算的应用。 易于并行化:Fortran天然支持并行计算,这使得它在现代多核和多处理器计算环境中依然保持竞争力。 强大的数值精度:Fortran提供高精度的数值计算能力,非常适合科学研究中的精确计算需求。 编译器 Fortran编译器是将Fortran代码转换为机器代码的软件工具,这些机器代码可以直接在计算机硬件上执行。常见的Fortran编译器包括GNU Fortran (gfortran)、Intel Fortran Compiler和PGI Fortran。每种编
devtool6.4.5.zip
Redis是一种开源的高性能键值存储系统,它提供了丰富的数据类型和操作方式,支持复杂的数据结构和高效的数据操作。作为一种内存数据库,Redis具有极高的读写速度和可扩展性,广泛应用于缓存、消息队列、分布式锁等场景。本文将深入探讨Redis的原理、特性、应用场景以及性能优化等方面,帮助读者更全面地了解和使用这一强大的数据库系统。 一、Redis概述 Redis是一个基于Redis协议的开源内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。Redis支持多种类型的数据结构,如字符串、列表、集合、散列、有序集合等,这些数据结构可以通过简单的API进行操作,使得Redis在数据存储和访问方面非常灵活。此外,Redis还支持丰富的操作命令,如增加、删除、查找、更新等,可以满足各种复杂的业务需求。
基于Vue.js和SpringBoot的房屋租赁系统,分为管理后台和用户网页端,可以给管理员、租客角色使用,包括房屋信息、看房申请、租赁合同、房屋报修、收租信息、维修数据、租客管理、公告管理和系统基础模块,项目编号T040。 项目录屏:https://www.bilibili.com/video/BV1pK4y1z7no 启动教程:https://www.bilibili.com/video/BV1pW4y1P7GR 项目讲解视频:https://space.bilibili.com/417412814/channel/collectiondetail?sid=2242844
毕业设计-基于Android Studio实现的学生信息管理系统源码.zip文件-高分项目,本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 毕业设计-基于Android Studio实现的学生信息管理系统源码.zip文件-高分项目,本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 毕业设计-基于Android Studio实现的学生信息管理系统源码.zip文件-高分项目,本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 毕业设计-基于Android Studio实现的学生信息管理系统源码.zip文件-高分项目,本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教