<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>夜半难眠 &#187; Java</title>
	<atom:link href="http://www.havenliu.com/category/java/feed" rel="self" type="application/rss+xml" />
	<link>http://www.havenliu.com</link>
	<description>blogger被和谐，重新搬家</description>
	<lastBuildDate>Tue, 07 Sep 2010 08:24:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>struts2.1中include取不到参数的问题</title>
		<link>http://www.havenliu.com/java/310.html</link>
		<comments>http://www.havenliu.com/java/310.html#comments</comments>
		<pubDate>Tue, 02 Mar 2010 05:21:24 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[struts]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=310</guid>
		<description><![CDATA[Struts2.1中，用
&#60;s:include value=&#8221;top.jsp&#8221;&#62;
&#60;s:param name=&#8221;menuid&#8221;&#62;123&#60;/s:param&#62;
&#60;/s:include&#62;
方式include页面，在top.jsp中通过&#60;s:property value=&#8221;#request.menuid&#8221;/&#62;或者&#60;s:property value=&#8221;%{#attr.menuid}&#8221;/&#62;均不能获取到menuid的值，但用&#60;%=request.getparameter(&#8221;menuid&#8221;)%&#62;的方式可以获取到.如果在地址栏直接输入top.jsp?menuid=123这种方式访问是可以获取到的。由于Struts2.1不再支持 EL表达式语言，不知道用${param.menuid}这种方式行不行。简单查阅了一些资料，没有得出结论，估计是OGNL本身的缺陷，没在深入研究。希望Struts的后续版本中能修正这个问题。
随机文章2009年06月30日 -- 惠普前总裁孙振耀指点职业规划（一）2010年04月12日 -- Blog的PR值居然有3了2009年07月28日 -- 2009年第96届环法自行车赛第十九、二十、二十一站视频2009年09月24日 -- 垃圾评论要翻天了2009年07月6日 -- 2009年第96届环法自行车赛第二、三赛段视频]]></description>
			<content:encoded><![CDATA[<p>Struts2.1中，用<br />
&lt;s:include value=&#8221;top.jsp&#8221;&gt;<br />
&lt;s:param name=&#8221;menuid&#8221;&gt;123&lt;/s:param&gt;<br />
&lt;/s:include&gt;<br />
方式include页面，在top.jsp中通过&lt;s:property value=&#8221;#request.menuid&#8221;/&gt;或者&lt;s:property value=&#8221;%{#attr.menuid}&#8221;/&gt;均不能获取到menuid的值，但用&lt;%=request.getparameter(&#8221;menuid&#8221;)%&gt;的方式可以获取到.如果在地址栏直接输入top.jsp?menuid=123这种方式访问是可以获取到的。由于Struts2.1不再支持 EL表达式语言，不知道用${param.menuid}这种方式行不行。简单查阅了一些资料，没有得出结论，估计是OGNL本身的缺陷，没在深入研究。希望Struts的后续版本中能修正这个问题。</p>
<h3  class="related_post_title">随机文章</h3><ul class="related_post"><li>2009年08月23日 -- <a href="http://www.havenliu.com/bike/203.html" title="徽杭古道归来">徽杭古道归来</a></li><li>2009年06月6日 -- <a href="http://www.havenliu.com/goodarticle/27.html" title="我喜欢的十个禅宗故事">我喜欢的十个禅宗故事</a></li><li>2010年08月26日 -- <a href="http://www.havenliu.com/goodarticle/481.html" title="爆笑三国之张飞流水账">爆笑三国之张飞流水账</a></li><li>2009年11月2日 -- <a href="http://www.havenliu.com/java/266.html" title="MySql access denied for user错误">MySql access denied for user错误</a></li><li>2010年05月15日 -- <a href="http://www.havenliu.com/bike/423.html" title="江南古镇之【骑行南浔】">江南古镇之【骑行南浔】</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/310.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyEclipse 7.5,MyEclipse 8.0中安装Flex插件</title>
		<link>http://www.havenliu.com/java/280.html</link>
		<comments>http://www.havenliu.com/java/280.html#comments</comments>
		<pubDate>Fri, 11 Dec 2009 03:15:43 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[MyEclipse]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=280</guid>
		<description><![CDATA[不可否认MyEclipse现在越做越强大（毕竟是收费的嘛），强大到开始排斥第三方插件，这有些不符合Eclipse的初衷，Eclipse就是靠良好的扩展性发展起来的。
MyEclipse从7.5开始（7.0没用过，不知道），完全改变了程序结构，现在扩展第三方插件 再也没有以前那么方便了，特别是link方式，这对程序员来说是致命的。Flex Plugin 安装时需要选择Eclipse目录，7.5中根本没有Eclipse目录，所以想直接在myeclipse中安装flex plugin是不太可能。我试过将flex里的features和plugins目录拷贝到myeclipse中进行强制安装，还是失败，所以最后只能将Eclipse,Flex plugin和myeclipse分开进行安装。
MyEclipse 7.5对应的Eclipse 版本为3.4，先到www.Eclipse.org官网去下载Eclipse3.4的版本。然后再到Myeclipse官网（已屏蔽大陆IP，需代理，但下载可以用迅雷直接下）去下载增量升级包，注意，一定要是增量升级包，即archived update site.zip 这个包，不能下载集成安装包，flex builder plugin 的版本也必须为3.02，这一点很重要，Adobe官网已经很明确的说明了3.0本版存在bug，不能再Eclipse3.4  中安装，已经下载3.0本版的可以到Adobe官网或google 中去下载补丁。安装顺序是，先解压Eclipse3.4 ，然后安装 Flex plugin ，和以前的安装方法一样，选好目录，直接下一步就行，然后再通过Eclipse的Help-&#62;Software Updates-&#62;Available Software -&#62;Add site-&#62;Archive安装刚才下载的MyEclipse7.5 的增量升级包。如果你RP不是特别差的话，应该就大功告成了,Enjoy this !
同样，MyEclipse8.0中的Flex plugin 也可以这样安装。需要说明的是MyEclipse8.0 对应的Eclipse版本是3.5 。Eclipse3.5 对应的Flex plugin为4.0.目前Flex plugin 4.0的正式版还没出，还是Beta 版 ，Flex builder4 已经正式更名为 Flash builder4了 ,还是喜欢Flex builder的命名，感觉更加专业点，哈哈！
发现现在自己真懒，很不想写东西。难得敲几个字出来，装载请注明出处，致谢！
相关文章2010年03月31日 -- 自己写的一个Flex3多文件上传组件2009年11月29日 -- MyEclipse 8没有启动画面的问题2009年08月14日 -- 发贴器有了比较大的进展]]></description>
			<content:encoded><![CDATA[<p>不可否认MyEclipse现在越做越强大（毕竟是收费的嘛），强大到开始排斥第三方插件，这有些不符合Eclipse的初衷，Eclipse就是靠良好的扩展性发展起来的。</p>
<p>MyEclipse从7.5开始（7.0没用过，不知道），完全改变了程序结构，现在扩展第三方插件 再也没有以前那么方便了，特别是link方式，这对程序员来说是致命的。Flex Plugin 安装时需要选择Eclipse目录，7.5中根本没有Eclipse目录，所以想直接在myeclipse中安装flex plugin是不太可能。我试过将flex里的features和plugins目录拷贝到myeclipse中进行强制安装，还是失败，所以最后只能将Eclipse,Flex plugin和myeclipse分开进行安装。</p>
<p>MyEclipse 7.5对应的Eclipse 版本为3.4，先到www.Eclipse.org官网去下载Eclipse3.4的版本。然后再到Myeclipse官网（已屏蔽大陆IP，需代理，但下载可以用迅雷直接下）去下载增量升级包，注意，一定要是增量升级包，即archived update site.zip 这个包，不能下载集成安装包，flex builder plugin 的版本也必须为3.02，这一点很重要，Adobe官网已经很明确的说明了3.0本版存在bug，不能再Eclipse3.4  中安装，已经下载3.0本版的可以到Adobe官网或google 中去下载补丁。安装顺序是，先解压Eclipse3.4 ，然后安装 Flex plugin ，和以前的安装方法一样，选好目录，直接下一步就行，然后再通过Eclipse的Help-&gt;Software Updates-&gt;Available Software -&gt;Add site-&gt;Archive安装刚才下载的MyEclipse7.5 的增量升级包。如果你RP不是特别差的话，应该就大功告成了,Enjoy this !</p>
<p>同样，MyEclipse8.0中的Flex plugin 也可以这样安装。需要说明的是MyEclipse8.0 对应的Eclipse版本是3.5 。Eclipse3.5 对应的Flex plugin为4.0.目前Flex plugin 4.0的正式版还没出，还是Beta 版 ，Flex builder4 已经正式更名为 Flash builder4了 ,还是喜欢Flex builder的命名，感觉更加专业点，哈哈！</p>
<p>发现现在自己真懒，很不想写东西。难得敲几个字出来，装载请注明<a title="原文出自“夜半难眠”" href="http://www.havenliu.com/java/280.html">出处</a>，致谢！</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月31日 -- <a href="http://www.havenliu.com/web/327.html" title="自己写的一个Flex3多文件上传组件">自己写的一个Flex3多文件上传组件</a></li><li>2009年11月29日 -- <a href="http://www.havenliu.com/java/275.html" title="MyEclipse 8没有启动画面的问题">MyEclipse 8没有启动画面的问题</a></li><li>2009年08月14日 -- <a href="http://www.havenliu.com/java/191.html" title="发贴器有了比较大的进展">发贴器有了比较大的进展</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/280.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyEclipse 8没有启动画面的问题</title>
		<link>http://www.havenliu.com/java/275.html</link>
		<comments>http://www.havenliu.com/java/275.html#comments</comments>
		<pubDate>Mon, 30 Nov 2009 02:59:49 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[MyEclipse]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=275</guid>
		<description><![CDATA[一直不能忍受Myeclipse7.5的龟速启动，最后还是忍痛换成了8.0，但安装后发现MyEclipse8.0没有以前的启动画面，对我这种有追求的完美的性格缺陷的人来说，这是不可忍受的。还好广大IT民工朋友的智慧的无限的，在网上一查，早有解决方法：只要在安装目录common里将splash.bmp图片搜出来，放到Myeclipse的启动文件所在目录，然后再修改myeclipse.ini文件，在文件最后一行加上下面这句话：-Dosgi.splashLocation=splash.bmp（myeclipse.ini和splash.bmp在同一目录，你还可以将splash.bmp换成其他图片，比如饭岛爱的。。。不知道有没有未成年看我的Blog。罪过啊罪过。。。）。搞定！
PS：MyEclipse8.0的启动貌似确实比7.5略快，不过现在MyEclipse集成的越来越臃肿，很多东西都是自己不用的，非常耗资源，电脑没2G的内存，还是慎选！
相关文章2009年12月10日 -- MyEclipse 7.5,MyEclipse 8.0中安装Flex插件]]></description>
			<content:encoded><![CDATA[<p>一直不能忍受Myeclipse7.5的龟速启动，最后还是忍痛换成了8.0，但安装后发现MyEclipse8.0没有以前的启动画面，对我这种有追求的完美的性格缺陷的人来说，这是不可忍受的。还好广大IT民工朋友的智慧的无限的，在网上一查，早有解决方法：只要在安装目录common里将splash.bmp图片搜出来，放到Myeclipse的启动文件所在目录，然后再修改myeclipse.ini文件，在文件最后一行加上下面这句话：-Dosgi.splashLocation=splash.bmp（myeclipse.ini和splash.bmp在同一目录，你还可以将splash.bmp换成其他图片，比如饭岛爱的。。。不知道有没有未成年看我的Blog。罪过啊罪过。。。）。搞定！</p>
<p>PS：MyEclipse8.0的启动貌似确实比7.5略快，不过现在MyEclipse集成的越来越臃肿，很多东西都是自己不用的，非常耗资源，电脑没2G的内存，还是慎选！</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年12月10日 -- <a href="http://www.havenliu.com/java/280.html" title="MyEclipse 7.5,MyEclipse 8.0中安装Flex插件">MyEclipse 7.5,MyEclipse 8.0中安装Flex插件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/275.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MySql access denied for user错误</title>
		<link>http://www.havenliu.com/java/266.html</link>
		<comments>http://www.havenliu.com/java/266.html#comments</comments>
		<pubDate>Tue, 03 Nov 2009 06:51:48 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=266</guid>
		<description><![CDATA[怪自己学艺不精，今天遇到MySql远程连接时的“access denied for user **@**”错误，搞的我很头大，后来查出来解决方法。记录一下，怕以后再忘记：
首先本地登陆MySQL，然后执行这两句代码：GRANT ALL PRIVILEGES ON *.* TO root@&#8217;%&#8217; IDENTIFIED BY &#8216;000000&#8242;;
FLUSH PRIVILEGES;
格式：grant 权限 on 数据库名.表名 用户@登录主机 identified by &#8220;用户密码&#8221;;
参数说明：  ALL PRIVILEGES表示赋给远程登录用户的权限，ALL PRIVILEGES表示所有的权限，你也可以单独或组合赋select,update,insert,delete权限；*.*：第一个*表示要赋权的数据库名，*当然表示全部数据库了，第二个*表示数据库下的表名，同理，*表示全部表，像我这样的懒人当然就直接用*.*了，反正都是自己开发用（不要BS我）。。。。root表示要赋权的用户；%表示远程登录的IP，如果要限制登录IP的话，这里就添你允许登录的IP，比如192.18.1.99等，%表示不限制IP（再次偷懒），000000是用户远程登录的密码。就这么简单。这句运行以后再运行FLUSH PRIVILEGES，搞定！
“Host &#8216;XXX&#8217; is not allowed to connect to this MySQL server”这错误貌似也可以这样搞定。
随机文章2009年08月23日 -- 徽杭古道归来2009年08月2日 -- 兄弟的另一种诠释2009年06月30日 -- 惠普前总裁孙振耀指点职业规划（三）2010年06月17日 -- D80初试机2009年06月16日 -- 回家归来]]></description>
			<content:encoded><![CDATA[<p>怪自己学艺不精，今天遇到MySql远程连接时的“access denied for user **@**”错误，搞的我很头大，后来查出来解决方法。记录一下，怕以后再忘记：<br />
首先本地登陆MySQL，然后执行这两句代码：GRANT ALL PRIVILEGES ON *.* TO root@&#8217;%&#8217; IDENTIFIED BY &#8216;000000&#8242;;<br />
FLUSH PRIVILEGES;<br />
格式：grant 权限 on 数据库名.表名 用户@登录主机 identified by &#8220;用户密码&#8221;;<br />
参数说明：  ALL PRIVILEGES表示赋给远程登录用户的权限，ALL PRIVILEGES表示所有的权限，你也可以单独或组合赋select,update,insert,delete权限；*.*：第一个*表示要赋权的数据库名，*当然表示全部数据库了，第二个*表示数据库下的表名，同理，*表示全部表，像我这样的懒人当然就直接用*.*了，反正都是自己开发用（不要BS我）。。。。root表示要赋权的用户；%表示远程登录的IP，如果要限制登录IP的话，这里就添你允许登录的IP，比如192.18.1.99等，%表示不限制IP（再次偷懒），000000是用户远程登录的密码。就这么简单。这句运行以后再运行FLUSH PRIVILEGES，搞定！</p>
<p>“Host &#8216;XXX&#8217; is not allowed to connect to this MySQL server”这错误貌似也可以这样搞定。</p>
<h3  class="related_post_title">随机文章</h3><ul class="related_post"><li>2009年06月30日 -- <a href="http://www.havenliu.com/goodarticle/77.html" title="惠普前总裁孙振耀指点职业规划（三）">惠普前总裁孙振耀指点职业规划（三）</a></li><li>2009年12月27日 -- <a href="http://www.havenliu.com/goodarticle/292.html" title="伊朗起义了(重新更新了大量图片)">伊朗起义了(重新更新了大量图片)</a></li><li>2009年07月5日 -- <a href="http://www.havenliu.com/bike/113.html" title="2009年第96届环法自行车赛第一赛段个人计时赛视频">2009年第96届环法自行车赛第一赛段个人计时赛视频</a></li><li>2009年07月8日 -- <a href="http://www.havenliu.com/goodarticle/135.html" title="中国移动要推出的应用软件商店Mobile Market（简称MMarket）">中国移动要推出的应用软件商店Mobile Market（简称MMarket）</a></li><li>2009年06月21日 -- <a href="http://www.havenliu.com/goodarticle/39.html" title="哲学寓言">哲学寓言</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/266.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>发贴器有了比较大的进展</title>
		<link>http://www.havenliu.com/java/191.html</link>
		<comments>http://www.havenliu.com/java/191.html#comments</comments>
		<pubDate>Sat, 15 Aug 2009 03:18:41 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Demo版]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[发贴器]]></category>
		<category><![CDATA[工作流]]></category>
		<category><![CDATA[流程]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=191</guid>
		<description><![CDATA[上次在整体测试的时候发现了一个致命的BUG，是框架性的问题，就把整个程序的框架结构调整了一下，现在的框架模式比以前更加优化了，理论上程序的运行速度应该更快（没测过，根据理论推测的），减少了数据库的访问量在50%以上，如果并发数多的话，这可以大大提高系统性能，减少数据库压力。最开始的BUG就是数据库方面的问题，并发数太多会耗尽数据库资源，最后系统宕机。

最近工作状态不佳。工作进度很慢。感觉生活的压力太大。这次的框架调整应该可以在一个星期内完成的，我花了半个多月。
每次坐在电脑面前整个人都是茫然的，不知道该干什么，很多时候会订这空荡荡的桌面发呆，强打起精神写也写不上几行代码。这对程序员来是真的是要命。
朋友昨天还要我和他一起做一套OA系统，他给我看了他的朋友现在做的一套OA，老实说技术方面这套系统做的很不错了，工作流都有了。流程的定义还是用Flex做的，只是这套系统还缺少了商业性的包装，我不知道开发这系统的兄弟花了多少时间来完成这套系统，我很佩服他。如果以我现在的状态来开发这套系统，最起码要一年半以上，因为我早了半年前就在谋划着要自己开发一套OA，但谋划了半年也还没见动手，到是别人先做出来了。再次证明了我的执行能力太差，打击不小。
貌似和标题离的太远了。。。。
不管怎样，生活还是得继续，强打起精神来吧，争取在一个月内可以让发贴器的Demo版出来。
相关文章2010年03月31日 -- 自己写的一个Flex3多文件上传组件2009年12月10日 -- MyEclipse 7.5,MyEclipse 8.0中安装Flex插件]]></description>
			<content:encoded><![CDATA[<p>上次在整体测试的时候发现了一个致命的BUG，是框架性的问题，就把整个程序的框架结构调整了一下，现在的框架模式比以前更加优化了，理论上程序的运行速度应该更快（没测过，根据理论推测的），减少了数据库的访问量在50%以上，如果并发数多的话，这可以大大提高系统性能，减少数据库压力。最开始的BUG就是数据库方面的问题，并发数太多会耗尽数据库资源，最后系统宕机。<br />
<span id="more-191"></span></p>
<p>最近工作状态不佳。工作进度很慢。感觉生活的压力太大。这次的框架调整应该可以在一个星期内完成的，我花了半个多月。</p>
<p>每次坐在电脑面前整个人都是茫然的，不知道该干什么，很多时候会订这空荡荡的桌面发呆，强打起精神写也写不上几行代码。这对程序员来是真的是要命。</p>
<p>朋友昨天还要我和他一起做一套OA系统，他给我看了他的朋友现在做的一套OA，老实说技术方面这套系统做的很不错了，工作流都有了。流程的定义还是用Flex做的，只是这套系统还缺少了商业性的包装，我不知道开发这系统的兄弟花了多少时间来完成这套系统，我很佩服他。如果以我现在的状态来开发这套系统，最起码要一年半以上，因为我早了半年前就在谋划着要自己开发一套OA，但谋划了半年也还没见动手，到是别人先做出来了。再次证明了我的执行能力太差，打击不小。</p>
<p>貌似和标题离的太远了。。。。</p>
<p>不管怎样，生活还是得继续，强打起精神来吧，争取在一个月内可以让发贴器的Demo版出来。</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2010年03月31日 -- <a href="http://www.havenliu.com/web/327.html" title="自己写的一个Flex3多文件上传组件">自己写的一个Flex3多文件上传组件</a></li><li>2009年12月10日 -- <a href="http://www.havenliu.com/java/280.html" title="MyEclipse 7.5,MyEclipse 8.0中安装Flex插件">MyEclipse 7.5,MyEclipse 8.0中安装Flex插件</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/191.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dom4j生成XML文件，并解决乱码问题</title>
		<link>http://www.havenliu.com/java/165.html</link>
		<comments>http://www.havenliu.com/java/165.html#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:25:49 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[DOM4J]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[乱码]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=165</guid>
		<description><![CDATA[上次写过一段JDOM生成XML文件的例子（文章在这里），其实java操作xml文件还能用dom4j。
首先要下载DOM4J的jar包，可以去DOM4J的官网去下，地址是www.dom4j.org，如果会翻墙的也可以去sourceforge下载


?View Code JAVApackage com.havenliu.blog;
&#160;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
&#160;
public class Dom4jXmlOper &#123;
&#160;
	public static void createXml&#40;File file&#41;
	&#123;
		XMLWriter writer = null;
		SAXReader reader = new SAXReader&#40;&#41;;
&#160;
		OutputFormat format = OutputFormat.createPrettyPrint&#40;&#41;;
		format.setEncoding&#40;&#34;utf-8&#34;&#41;;//设置XML文件的编码格式,如果有中文可设置为GBK或UTF-8
&#160;
		Document _document = DocumentHelper.createDocument&#40;&#41;;
		Element _root = _document.addElement&#40;&#34;userinfo&#34;&#41;;
		Element user = _root.addElement&#40;&#34;user&#34;&#41;;
		user.addAttribute&#40;&#34;id&#34;, &#34;001&#34;&#41;;
		Element name = user.addElement&#40;&#34;name&#34;&#41;;
		name.setText&#40;&#34;张三&#34;&#41;;
		Element age = user.addElement&#40;&#34;age&#34;&#41;;
		age.setText&#40;&#34;28&#34;&#41;;
		Element sex = user.addElement&#40;&#34;sex&#34;&#41;;
		sex.setText&#40;&#34;男&#34;&#41;;
		Element email = user.addElement&#40;&#34;email&#34;&#41;;
		email.setText&#40;&#34;abc@abc.com&#34;&#41;;
&#160;
		//如果上面设置的xml编码类型为GBK，则应当用FileWriter来构建xml文件，否则会出现中文连码问题
		/*
		 [...]]]></description>
			<content:encoded><![CDATA[<p>上次写过一段JDOM生成XML文件的例子（文章在<a class="wpGallery" title="DOM生成XML文档" href="http://www.havenliu.com/java/92.html" target="_blank">这里</a>），其实java操作xml文件还能用dom4j。</p>
<p>首先要下载DOM4J的jar包，可以去DOM4J的官网去下，地址是<a title="www.dom4j.org" href="www.dom4j.org" target="_blank">www.dom4j.org</a>，如果会翻墙的也可以去<a title="http://sourceforge.net/project/showfiles.php?group_id=16035" href="http://sourceforge.net/project/showfiles.php?group_id=16035" target="_blank">sourceforge</a>下载</p>
<p><span id="more-165"></span></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p165code3'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1653"><td class="code" id="p165code3"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.havenliu.blog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.File</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileNotFoundException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileWriter</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.UnsupportedEncodingException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.Document</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.DocumentHelper</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.Element</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.io.OutputFormat</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.io.SAXReader</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.dom4j.io.XMLWriter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Dom4jXmlOper <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> createXml<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afile+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">File</span></a> file<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		XMLWriter writer <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		SAXReader reader <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SAXReader<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		OutputFormat format <span style="color: #339933;">=</span> OutputFormat.<span style="color: #006633;">createPrettyPrint</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		format.<span style="color: #006633;">setEncoding</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;utf-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//设置XML文件的编码格式,如果有中文可设置为GBK或UTF-8</span>
&nbsp;
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocument+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Document</span></a> _document <span style="color: #339933;">=</span> DocumentHelper.<span style="color: #006633;">createDocument</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> _root <span style="color: #339933;">=</span> _document.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;userinfo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> user <span style="color: #339933;">=</span> _root.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;user&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		user.<span style="color: #006633;">addAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;id&quot;</span>, <span style="color: #0000ff;">&quot;001&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> name <span style="color: #339933;">=</span> user.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		name.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;张三&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> age <span style="color: #339933;">=</span> user.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;age&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		age.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;28&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> sex <span style="color: #339933;">=</span> user.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;sex&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		sex.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;男&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> email <span style="color: #339933;">=</span> user.<span style="color: #006633;">addElement</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;email&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		email.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;abc@abc.com&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//如果上面设置的xml编码类型为GBK，则应当用FileWriter来构建xml文件，否则会出现中文连码问题</span>
		<span style="color: #666666; font-style: italic;">/*
		 try {
			writer = new XMLWriter(new FileWriter(file), format);
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		*/</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">//如果上面设置的xml编码类型为utf-8，则应当用FileOutputStream来构建xml文件，否则还是会出现乱码问题</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afileoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">FileOutputStream</span></a> fos <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			fos <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afileoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">FileOutputStream</span></a><span style="color: #009900;">&#40;</span>file<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afilenotfoundexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">FileNotFoundException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			writer <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XMLWriter<span style="color: #009900;">&#40;</span>fos, format<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aunsupportedencodingexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">UnsupportedEncodingException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			writer.<span style="color: #006633;">write</span><span style="color: #009900;">&#40;</span>_document<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			writer.<span style="color: #006633;">close</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a> filePath <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;d:<span style="color: #000099; font-weight: bold;">\\</span>temp<span style="color: #000099; font-weight: bold;">\\</span>user.xml&quot;</span><span style="color: #339933;">;</span><span style="color: #666666; font-style: italic;">//生产的XML文件位置</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afile+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">File</span></a> file <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afile+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">File</span></a><span style="color: #009900;">&#40;</span>filePath<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		Dom4jXmlOper.<span style="color: #006633;">createXml</span><span style="color: #009900;">&#40;</span>file<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>生成好以后的xml文件格式：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p165code4'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p1654"><td class="code" id="p165code4"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;userinfo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;user</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;001&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>张三<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;age<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>28<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/age<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sex<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>男<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sex<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;email<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>abc@abc.com<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/email<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/user<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/userinfo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年07月2日 -- <a href="http://www.havenliu.com/java/92.html" title="Java生成XML文档的基本操作">Java生成XML文档的基本操作</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/165.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java生成XML文档的基本操作</title>
		<link>http://www.havenliu.com/java/92.html</link>
		<comments>http://www.havenliu.com/java/92.html#comments</comments>
		<pubDate>Thu, 02 Jul 2009 11:45:11 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[jdom]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=92</guid>
		<description><![CDATA[利用JDOM生成XML文档，JDOM.jar的官方下载地址：点击这里，官方网址是http://www.jdom.org，下面代码可以下载后直接执行：

?View Code JAVApackage com.haven.reply.serviceimpl;
&#160;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Comment;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
&#160;
public class JavaXMLDaoImpl &#123;
&#160;
	public void createXMLDoc&#40;&#41; &#123;
		// 创建根节点 root;
		Element root = new Element&#40;&#34;root&#34;&#41;;
&#160;
		// 根节点添加到文档中； 根节点是唯一的
		Document Doc = new Document&#40;root&#41;;
&#160;
		// 下面开始向XML文档中插入数据
		// 创建节点elemets1;
		Element elements1 = new Element&#40;&#34;elemets1&#34;&#41;;
&#160;
		// 给 elemets 节点添加属性 name;
		elements1.setAttribute&#40;&#34;name&#34;, &#34;test1&#34;&#41;;
&#160;
		// 给 elemets 节点添加子节点并赋值；
		elements1.addContent&#40;new Element&#40;&#34;note1-1&#34;&#41;.setText&#40;&#34;value1-1&#34;&#41;&#41;;
		elements1.addContent&#40;new Element&#40;&#34;note1-2&#34;&#41;.setText&#40;&#34;value1-2&#34;&#41;&#41;;
		// 添加一个注释
		elements1.addContent&#40;new Comment&#40;&#34;This is Comment!!!!&#34;&#41;&#41;;
		elements1.addContent&#40;new Element&#40;&#34;note1-3&#34;&#41;.setText&#40;&#34;value1-3&#34;&#41;&#41;;
&#160;
		// 给父节点list添加user子节点;
		root.addContent&#40;elements1&#41;;
&#160;
		// 继续创建节点elemets2;方法和步骤和elemets1完全一样
		Element elements2 = [...]]]></description>
			<content:encoded><![CDATA[<p>利用JDOM生成XML文档，JDOM.jar的官方下载地址：<a href="http://www.jdom.org/downloads/source.html">点击这里</a>，官方网址是http://www.jdom.org，下面代码可以下载后直接执行：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p92code7'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p927"><td class="code" id="p92code7"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.haven.reply.serviceimpl</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileNotFoundException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.FileOutputStream</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.io.IOException</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jdom.Comment</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jdom.Document</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jdom.Element</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jdom.output.Format</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">org.jdom.output.XMLOutputter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> JavaXMLDaoImpl <span style="color: #009900;">&#123;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> createXMLDoc<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #666666; font-style: italic;">// 创建根节点 root;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> root <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;root&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 根节点添加到文档中； 根节点是唯一的</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocument+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Document</span></a> Doc <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Adocument+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Document</span></a><span style="color: #009900;">&#40;</span>root<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 下面开始向XML文档中插入数据</span>
		<span style="color: #666666; font-style: italic;">// 创建节点elemets1;</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> elements1 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;elemets1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 给 elemets 节点添加属性 name;</span>
		elements1.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>, <span style="color: #0000ff;">&quot;test1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 给 elemets 节点添加子节点并赋值；</span>
		elements1.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note1-1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value1-1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		elements1.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note1-2&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value1-2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #666666; font-style: italic;">// 添加一个注释</span>
		elements1.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Comment<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;This is Comment!!!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		elements1.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note1-3&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value1-3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 给父节点list添加user子节点;</span>
		root.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span>elements1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 继续创建节点elemets2;方法和步骤和elemets1完全一样</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a> elements2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;elemets2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 给 elemets 节点添加属性 name;</span>
		elements2.<span style="color: #006633;">setAttribute</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span>, <span style="color: #0000ff;">&quot;test2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 给 elemets 节点添加子节点并赋值；</span>
		elements2.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note2-1&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value2-1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		elements2.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note2-2&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value2-2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		elements2.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Comment<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;This is Comment!!!!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		elements2.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aelement+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Element</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;note2-3&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;value2-3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		root.<span style="color: #006633;">addContent</span><span style="color: #009900;">&#40;</span>elements2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// 下面是美化工作，如果不进行排版，生成的XML全部在一行显示。可读性很差</span>
		<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aformat+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Format</span></a> format <span style="color: #339933;">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aformat+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Format</span></a>.<span style="color: #006633;">getCompactFormat</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		format.<span style="color: #006633;">setEncoding</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;UTF-8&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		format.<span style="color: #006633;">setIndent</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;    &quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 缩进4个空格后换行</span>
&nbsp;
		XMLOutputter XMLOut <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> XMLOutputter<span style="color: #009900;">&#40;</span>format<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// test.xml为生成的xml文档名</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			XMLOut.<span style="color: #006633;">output</span><span style="color: #009900;">&#40;</span>Doc, <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afileoutputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">FileOutputStream</span></a><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;test.xml&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Afilenotfoundexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">FileNotFoundException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Astring+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">String</span></a><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
			JavaXMLDaoImpl j2x <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> JavaXMLDaoImpl<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Asystem+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">System</span></a>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;生成 mxl 文件...&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			j2x.<span style="color: #006633;">createXMLDoc</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Exception</span></a> e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			e.<span style="color: #006633;">printStackTrace</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>下面是生成好以后的XML文档样式：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p92code8'); return false;">View Code</a> XML</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table width="100%" ><tr id="p928"><td class="code" id="p92code8"><pre class="xml" style="font-family:monospace;">&nbsp;
        value1-1
        value1-2
        <span style="color: #808080; font-style: italic;">&lt;!--This is Comment!!!!--&gt;</span>
        value1-3
&nbsp;
        value2-1
        value2-2
        <span style="color: #808080; font-style: italic;">&lt;!--This is Comment!!!!--&gt;</span>
        value2-3</pre></td></tr></table></div>

<p>下次有时间再把JDOM解析XML的代码写一下，今天先到这里<br />
欢迎转载，转载时请指明出处！</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年07月29日 -- <a href="http://www.havenliu.com/java/165.html" title="Dom4j生成XML文件，并解决乱码问题">Dom4j生成XML文件，并解决乱码问题</a></li><li>2009年06月2日 -- <a href="http://www.havenliu.com/java/12.html" title="再次遇到a different object with the same identifier value was already associated with the session错误">再次遇到a different object with the same identifier value was already associated with the session错误</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/92.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>再次遇到a different object with the same identifier value was already associated with the session错误</title>
		<link>http://www.havenliu.com/java/12.html</link>
		<comments>http://www.havenliu.com/java/12.html#comments</comments>
		<pubDate>Wed, 03 Jun 2009 04:24:15 +0000</pubDate>
		<dc:creator>Haven</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[hiberate]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://www.havenliu.com/?p=12</guid>
		<description><![CDATA[这错误以前遇到过一次，我是这样解决的：
正常情况一般调用hiberate端方法进行数据库操作时，是直接调用 getHibernateTemplate().update(user);，但在hibernate中同一个session里面有了两个相同标识但是是 不同实体时就会出现如标题的错误，在网上找来如下解决方法，错误是解决了，但不完美：
public void update(User user) {
Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();
session.clear();
session.update(user);
}
这 样在session.update(user)后如果还有其他对数据库的save或update并且是在同一个事务中，后面的操作可能就会无效，具体原因 没查出来，可能是getcurrentSession()获取的是“当前”session,调用getcurrentSession()时“当前 ”session被从hibernate中剥离，所以导致了后面的操作无效。
如果是struts+hibernate+spring框架下面有个很简单的方法：直接调用getHibernateTemplate().merge(user)。一切搞定！
相关文章2009年07月2日 -- Java生成XML文档的基本操作]]></description>
			<content:encoded><![CDATA[<p>这错误以前遇到过一次，我是这样解决的：<br />
正常情况一般调用hiberate端方法进行数据库操作时，是直接调用 getHibernateTemplate().update(user);，但在hibernate中同一个session里面有了两个相同标识但是是 不同实体时就会出现如标题的错误，在网上找来如下解决方法，错误是解决了，但不完美：<br />
public void update(User user) {</p>
<p>Session session = getHibernateTemplate().getSessionFactory().getCurrentSession();<br />
session.clear();<br />
session.update(user);</p>
<p>}<br />
这 样在session.update(user)后如果还有其他对数据库的save或update并且是在同一个事务中，后面的操作可能就会无效，具体原因 没查出来，可能是getcurrentSession()获取的是“当前”session,调用getcurrentSession()时“当前 ”session被从hibernate中剥离，所以导致了后面的操作无效。<br />
如果是struts+hibernate+spring框架下面有个很简单的方法：直接调用getHibernateTemplate().merge(user)。一切搞定！</p>
<h3  class="related_post_title">相关文章</h3><ul class="related_post"><li>2009年07月2日 -- <a href="http://www.havenliu.com/java/92.html" title="Java生成XML文档的基本操作">Java生成XML文档的基本操作</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.havenliu.com/java/12.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
