参考网站: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>
分享到:
相关推荐
ASP.NET网络进销存管理系统源码 内含一些新技术的使用,使用的是VS .NET 2008平台采用标准的三层架构设计,采用流行的AJAX技术 使操作更加流畅,统计报表使用FLASH插件美观大方专业。适合二次开发类似项目使用,可以节省您 开发项目周期,源码统计报表部分需要自己将正常功能注释掉的源码手工取消掉注释。这是我在调试程 序时留下的。也是上传源码前的疏忽。 您下载后可以用VS2008直接打开将注释取消掉即可正常使用。 技术特点:1、采用目前最流行的.net技术实现。2、采用B/S架构,三层无限量客户端。 3、配合SQLServer2005数据库支持 4、可实现跨越地域和城市间的系统应用。 5、二级审批机制,简单快速准确。 6、销售功能手写AJAX无刷新,快速稳定。 7、统计报表采用Flash插件美观大方。8、模板式开发,能够快速进行二次开发。权限、程序页面、 基础资料部分通过后台数据库直接维护,可单独拿出继续开发其他系统 9、数据字典,模块架构图,登录页面和主页的logo图片 分别放在DOC PSD 文件夹中
# 基于ZooKeeper的分布式服务管理系统 ## 项目简介 本项目是一个基于ZooKeeper的分布式服务管理系统,旨在通过ZooKeeper的协调服务功能,实现分布式环境下的服务注册、发现、配置管理以及分布式锁等功能。项目涵盖了从ZooKeeper的基本操作到实际应用场景的实现,如分布式锁、商品秒杀等。 ## 项目的主要特性和功能 1. 服务注册与发现通过ZooKeeper实现服务的动态注册与发现,支持服务的动态上下线。 2. 分布式锁利用ZooKeeper的临时顺序节点特性,实现高效的分布式锁机制,避免传统锁机制中的“羊群效应”。 3. 统一配置管理通过ZooKeeper集中管理分布式系统的配置信息,实现配置的动态更新和实时同步。 4. 商品秒杀系统结合分布式锁和ZooKeeper的监听机制,实现高并发的商品秒杀功能,确保库存的一致性和操作的原子性。 ## 安装使用步骤 1. 环境准备
23python3项目
技术资料分享AL422B很好的技术资料.zip
c语言俄罗斯方块
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
delphi人才信息管理系统
安卓巴士总结了近百个Android优秀开源项
1.程序功能说明: MATLAB蒙特卡洛仿真计算投资组合的VaR(Value at Risk ) 根据协方差矩阵等参数先计算涨期权和看跌期权的价格,再采用蒙特卡洛模拟法计算该投资组合的VaR。 2.代码说明:注释清晰,参数和变量说明清晰,方便更改、方便初学者使用,模块化编程,方便替换目标函数。运行环境Windows7及以上操作系统,MATLAB2014a及以上版本。 3.适用专业:计算机、电子信息工程、数学、物理、机械工程、土木工程等专业的大学生、研究生毕业设计,各类专业的课程设计、海外留学生作业等。 4作者介绍:资深算法工程师, 从事Matlab、Python算法仿真工作15年,专业研究遗传算法、粒子群算法、蚁群算法、鲸鱼算法、狼群算法等. 有问题联系QQ: 1579325979
SpringBoot - Async异步处理
完全退出程序的方法
hutool.all操作excel的依赖包,一共18个jar包,懒得去排查包的可以直接下载直接导入使用;我用eclipse和ideal接导入外部jar包。亲测可用;如果工程里面有相同的jar包,保留版本号高的; commons-cli-1.0.jar commons-codec-1.15.jar commons-collections4-4.4.jar commons-compress-1.21.jar commons-io-2.11.0.jar commons-lang3-3.4.jar commons-logging-api-1.1.jar commons-math3-3.6.1.jar hutool-all-5.8.21.jar log4j-1.2.12.jar log4j-api-2.20.0.jar log4j-core-2.20.0.jar poi-5.2.3.jar poi-ooxml-5.2.3.jar ……
# 基于Python的微信签到管理系统 ## 项目简介 本项目是一个基于Python的微信签到管理系统,旨在通过微信自动收集和管理学生的宿舍签到信息。系统通过微信的群聊功能,自动识别并记录符合特定格式的签到信息,并将其存储在Excel表格中。该系统特别适用于学校或组织需要定期收集学生签到信息的场景。 ## 项目的主要特性和功能 1. 自动签到信息收集系统能够自动检测微信中大于三人的群聊,识别并记录符合特定格式的签到信息。 2. 灵活的签到格式支持自定义签到格式,通过正则表达式匹配签到信息,确保信息的准确性和一致性。 3. 自动生成签到表格每周自动生成新的签到表格,并根据开学周数计算当前学期的周数。 4. 转发补录功能支持通过转发信息的方式补录错过的签到信息,提高信息的完整性。 5. 路径和模板配置允许用户自定义签到表格的存储路径和模板信息,方便管理和维护。 ## 安装使用步骤 ### 1. 环境搭建
# 基于Arduino和OpenWeatherMap的天气LED显示系统 ## 项目简介 此项目是一个基于天气数据的LED显示系统,主要用于展示当前的天气状况。它使用了WiFi连接的Arduino和LED灯带,通过OpenWeatherMap提供的API获取天气数据。项目旨在提高技术技能和软技能模块的学习成果。 ## 项目的主要特性和功能 ### 天气数据的展示 实时天气展示系统可以展示不同的天气状况,如晴朗、多云、降雨、雷电、雾等。 地点设置用户可以通过Blynk应用设置想要展示的地点,并实时获取该地点的天气数据。 更新间隔设置用户还可以设置数据更新的时间间隔。 ### 动画展示功能 天气模拟动画系统具有动画展示功能,用户可以选择不同的动画模式,如天气模拟动画。 LED颜色变换支持单个LED灯的颜色变换以及色彩淡入淡出动画等。 自动切换动画模式可以手动选择或通过定时设置自动切换。 ## 安装和使用步骤
将jar文件转换为exe
tdm64-gcc-9.2.0是一个编译器,如果大家在安装truetime运行中无法直接下载官方的编译器,就参考配置方法文档用这个编译器 大家需要首先安装vc++,可参考安装VScode 2019 版本
SAE AS5756C-2021 中文.pdf
c语言实现水波纹显示效果
基于C语言的winform界面火车票订票系统项目资源
2024年企业竞争模拟大赛河南大学校赛的通知(1) (1).pdf