﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-沉睡森林@漂在北京-随笔分类-Digester</title><link>http://www.blogjava.net/wangbing/category/35250.html</link><description>本处文章除注明“转载”外均为原创，转载请注明出处。</description><language>zh-cn</language><lastBuildDate>Sun, 19 Oct 2008 09:15:05 GMT</lastBuildDate><pubDate>Sun, 19 Oct 2008 09:15:05 GMT</pubDate><ttl>60</ttl><item><title>Digester解析多个XML文件的处理</title><link>http://www.blogjava.net/wangbing/archive/2008/10/18/235217.html</link><dc:creator>王兵</dc:creator><author>王兵</author><pubDate>Sat, 18 Oct 2008 13:43:00 GMT</pubDate><guid>http://www.blogjava.net/wangbing/archive/2008/10/18/235217.html</guid><wfw:comment>http://www.blogjava.net/wangbing/comments/235217.html</wfw:comment><comments>http://www.blogjava.net/wangbing/archive/2008/10/18/235217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangbing/comments/commentRss/235217.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangbing/services/trackbacks/235217.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;在利用digester处理XML文件时，读取多个XML文件，代码反复测试都出现错误。后来，经过几个分钟的查找，终于加入一段代码让程序跑通。代码如下：<br />
package com.example.demo2;<br />
import java.io.File;<br />
import org.apache.commons.digester.Digester;<br />
public class DigesterDriver {<br />
&nbsp;public static void main(String[] args) {<br />
&nbsp;&nbsp;try {<br />
&nbsp;&nbsp;&nbsp;Digester digester = new Digester();<br />
&nbsp;&nbsp;&nbsp;File input = new File("E:\\MyProjects\\Workspace\\DigesterDemo\\src\\com\\example\\demo2\\example.xml");<br />
&nbsp;&nbsp;&nbsp;File input2 = new File("E:\\MyProjects\\Workspace\\DigesterDemo\\src\\com\\example\\demo2\\example2.xml");<br />
&nbsp;&nbsp;&nbsp;Catalog2 c = new Catalog2();<br />
&nbsp;&nbsp;&nbsp;digester.push(c);<br />
&nbsp;&nbsp;&nbsp;digester.setValidating(false);<br />
&nbsp;&nbsp;&nbsp;digester.addObjectCreate("catalog/hi/book", Book2.class);<br />
&nbsp;&nbsp;&nbsp;digester.addBeanPropertySetter("catalog/hi/book/author", "author");<br />
&nbsp;&nbsp;&nbsp;digester.addBeanPropertySetter("catalog/hi/book/title", "title");<br />
&nbsp;&nbsp;&nbsp;digester.addSetNext("catalog/hi/book", "addBook" );<br />
&nbsp;&nbsp;&nbsp;digester.parse(input);<br />
&nbsp;&nbsp;<span style="color: red">&nbsp;digester.push(c);<br />
</span>&nbsp;&nbsp;&nbsp;digester.parse(input2);<br />
&nbsp;&nbsp;&nbsp;System.out.println(c.getBooks().size());<br />
&nbsp;&nbsp;} catch (Exception exc) {<br />
&nbsp;&nbsp;&nbsp;exc.printStackTrace();<br />
&nbsp;&nbsp;}<br />
&nbsp;}<br />
}<br />
&nbsp;&nbsp;&nbsp;&nbsp;其中，红色部分是后来加入的，仔细阅读了struts的部分代码，发现了这个错误。网上对这个介绍比较少，可能我这个问题比较弱智吧。struts的代码片段如下：<br />
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Configure the Digester instance we will use<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Digester digester = initConfigDigester();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Process each specified resource path<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (paths.length() &gt; 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; digester.push(config);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String path = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int comma = paths.indexOf(',');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (comma &gt;= 0) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = paths.substring(0, comma).trim();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paths = paths.substring(comma + 1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; path = paths.trim();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paths = "";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (path.length() &lt; 1) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.parseModuleConfigFile(prefix, paths, config, digester, path);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<br />
<img src ="http://www.blogjava.net/wangbing/aggbug/235217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangbing/" target="_blank">王兵</a> 2008-10-18 21:43 <a href="http://www.blogjava.net/wangbing/archive/2008/10/18/235217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Digester.push使用的问题</title><link>http://www.blogjava.net/wangbing/archive/2008/10/17/235044.html</link><dc:creator>王兵</dc:creator><author>王兵</author><pubDate>Fri, 17 Oct 2008 11:12:00 GMT</pubDate><guid>http://www.blogjava.net/wangbing/archive/2008/10/17/235044.html</guid><wfw:comment>http://www.blogjava.net/wangbing/comments/235044.html</wfw:comment><comments>http://www.blogjava.net/wangbing/archive/2008/10/17/235044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangbing/comments/commentRss/235044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangbing/services/trackbacks/235044.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;在使用Digester的时候，开始使用push但是不起作用，修改了多次rule，还是不行，后来，删除掉了digester.addObjectCreate("catalog", Catalog2.class);就可以了。但是，对多个文件的处理，还是不行，晚上回去在搞定吧，现在回家了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;周末快乐。
<img src ="http://www.blogjava.net/wangbing/aggbug/235044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangbing/" target="_blank">王兵</a> 2008-10-17 19:12 <a href="http://www.blogjava.net/wangbing/archive/2008/10/17/235044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Digester发现的问题</title><link>http://www.blogjava.net/wangbing/archive/2008/10/17/235004.html</link><dc:creator>王兵</dc:creator><author>王兵</author><pubDate>Fri, 17 Oct 2008 10:26:00 GMT</pubDate><guid>http://www.blogjava.net/wangbing/archive/2008/10/17/235004.html</guid><wfw:comment>http://www.blogjava.net/wangbing/comments/235004.html</wfw:comment><comments>http://www.blogjava.net/wangbing/archive/2008/10/17/235004.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangbing/comments/commentRss/235004.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangbing/services/trackbacks/235004.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; 今天在使用Digester的时候遇到了一个问题，还没有找到很好的办法解决。&nbsp;&nbsp;&nbsp;&nbsp;java文件如下：&nbsp;&nbsp;&nbsp;&nbsp;Digester digester = new Digester();&nbsp;&nbsp;&nbsp;digester.setValidating(false);&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/wangbing/archive/2008/10/17/235004.html'>阅读全文</a><img src ="http://www.blogjava.net/wangbing/aggbug/235004.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangbing/" target="_blank">王兵</a> 2008-10-17 18:26 <a href="http://www.blogjava.net/wangbing/archive/2008/10/17/235004.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Digester试用</title><link>http://www.blogjava.net/wangbing/archive/2008/10/16/234654.html</link><dc:creator>王兵</dc:creator><author>王兵</author><pubDate>Thu, 16 Oct 2008 02:46:00 GMT</pubDate><guid>http://www.blogjava.net/wangbing/archive/2008/10/16/234654.html</guid><wfw:comment>http://www.blogjava.net/wangbing/comments/234654.html</wfw:comment><comments>http://www.blogjava.net/wangbing/archive/2008/10/16/234654.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/wangbing/comments/commentRss/234654.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/wangbing/services/trackbacks/234654.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Normal07.8 磅02falsefalsefalseMicrosoftInternetExplorer4/* Style Definitions */table.MsoNormalTable{mso-style-name:普通表格;mso-tstyl...&nbsp;&nbsp;<a href='http://www.blogjava.net/wangbing/archive/2008/10/16/234654.html'>阅读全文</a><img src ="http://www.blogjava.net/wangbing/aggbug/234654.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/wangbing/" target="_blank">王兵</a> 2008-10-16 10:46 <a href="http://www.blogjava.net/wangbing/archive/2008/10/16/234654.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>