﻿<?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-lqxue-随笔分类-xml</title><link>http://www.blogjava.net/lqxue/category/24565.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 23 May 2008 13:49:17 GMT</lastBuildDate><pubDate>Fri, 23 May 2008 13:49:17 GMT</pubDate><ttl>60</ttl><item><title>[收藏]XML Namespace、elementFormDefault、请问Schema中elementFormDefault="qualified"是起什么作用呀？</title><link>http://www.blogjava.net/lqxue/archive/2008/05/23/202463.html</link><dc:creator>lqx</dc:creator><author>lqx</author><pubDate>Fri, 23 May 2008 09:52:00 GMT</pubDate><guid>http://www.blogjava.net/lqxue/archive/2008/05/23/202463.html</guid><wfw:comment>http://www.blogjava.net/lqxue/comments/202463.html</wfw:comment><comments>http://www.blogjava.net/lqxue/archive/2008/05/23/202463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqxue/comments/commentRss/202463.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqxue/services/trackbacks/202463.html</trackback:ping><description><![CDATA[一个&nbsp;XML&nbsp;schema&nbsp;中&nbsp;elementFormDefault="？"&nbsp;这一属性用来指示&nbsp;XML&nbsp;Schema&nbsp;处理程序把这个&nbsp;XML&nbsp;schema&nbsp;中定义的元素或者类型放到哪个命名空间。
<p>&nbsp;</p>
<p>一个schema中声明的元素或者类型只能归到两个命名空间中的某一个去，这两个是，无名命名空间和由targetSchema属性指明的目标命名空间。而targetSchema属性只能在xs：schema的定义中声明，因而，一个schema中的定义的元素或类型只可能归属于一个有名命名空间（但是还有可能归属于无名命名空间）。</p>
<p>当elementFormDefault="qualified"&nbsp;时，所有全局元素的子元素将被以缺省方式放到目标命名空间，<u><font color="red">连同</font></u>全局元素或者类型将被放到目标命名空间；而当elementFormDefault="unqualified"&nbsp;时，所有全局元素的子元素将被以缺省方式放到无名命名空间。而属性的命名空间类似地由attributeFormDefault="？"来指明。</p>
<p>需要明白的是，elementFormDefault="？"&nbsp;是有作用域的，并且是被继承的，除非在子定义中覆盖父定义。</p>
<p>下面三个例子说明了elementFormDefault的使用效果。红色表示属于已命名空间的元素，蓝色表示属于未命名空间的元素。</p>
<p>1.定义了目标命名空间，&nbsp;全局elementFormDefault=&#8220;unqualified&#8221;。这时除了全局元素或者类型将归于目标命名空间外，局部元素将归于无名命名空间。</p>
<p><u>unqualified.xsd</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
&lt;xs:schema&nbsp;xmlns:xs="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema%22" target="_blank">http://www.w3.org/2001/XMLSchema"</a>&nbsp;<font color="red">targetNamespace="aaaa"&nbsp;elementFormDefault="unqualified"</font>&nbsp;attributeFormDefault="unqualified"&gt;<br />
&nbsp;&lt;xs:element&nbsp;name="c"&gt;<br />
&nbsp;&nbsp;&lt;xs:complexType&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;xs:sequence&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c1"&nbsp;type="xs:double"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c2"&nbsp;type="xs:string"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/xs:sequence&gt;<br />
&nbsp;&nbsp;&lt;/xs:complexType&gt;<br />
&nbsp;&lt;/xs:element&gt;<br />
&lt;/xs:schema&gt;</p>
<p><u>unqualified.xml</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
<font color="red">&lt;n:c&nbsp;xmlns:n="aaaa"</font>&nbsp;xmlns:xsi="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema-instance%22" target="_blank">http://www.w3.org/2001/XMLSchema-instance"</a>&nbsp;xsi:schemaLocation="aaaa&nbsp;unqualified.xsd"&gt;<br />
&nbsp;<font color="blue">&lt;c1&gt;</font>3.141593E0<font color="blue">&lt;/c1&gt;</font><br />
&nbsp;<font color="blue">&lt;c2&gt;</font>String<font color="blue">&lt;/c2&gt;</font><br />
<font color="red">&lt;/n:c&gt;</font></p>
<p>2.&nbsp;定义了目标命名空间，&nbsp;全局elementFormDefault=&#8220;qualified&#8221;。这时全局元素或者类型将归于目标命名空间，局部元素将以缺省方式归于目标命名空间。</p>
<p><u>qualified.xsd</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
&lt;xs:schema&nbsp;xmlns:xs="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema%22" target="_blank">http://www.w3.org/2001/XMLSchema"</a>&nbsp;<font color="red">targetNamespace="aaaa"&nbsp;elementFormDefault="qualified"</font>&nbsp;attributeFormDefault="unqualified"&gt;<br />
&nbsp;&lt;xs:element&nbsp;name="c"&gt;<br />
&nbsp;&nbsp;&lt;xs:complexType&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;xs:sequence&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c1"&nbsp;type="xs:double"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c2"&nbsp;type="xs:string"/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/xs:sequence&gt;<br />
&nbsp;&nbsp;&lt;/xs:complexType&gt;<br />
&nbsp;&lt;/xs:element&gt;<br />
&lt;/xs:schema&gt;</p>
<p><u>qualified.xml</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
<font color="red">&lt;c&nbsp;xmlns="aaaa"</font>&nbsp;xmlns:xsi="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema-instance%22" target="_blank">http://www.w3.org/2001/XMLSchema-instance"</a>&nbsp;xsi:schemaLocation="aaaa&nbsp;qualified.xsd"&gt;<br />
&nbsp;<font color="red">&lt;c1&gt;</font>3.141593E0<font color="red">&lt;/c1&gt;</font><br />
&nbsp;<font color="red">&lt;c2&gt;</font>String<font color="red">&lt;/c2&gt;</font><br />
<font color="red">&lt;/c&gt;</font></p>
<p>3.&nbsp;定义了目标命名空间，&nbsp;全局elementFormDefault=&#8220;unqualified&#8221;。这时全局元素（c）或者类型将归于目标命名空间。局部元素（c1，c2）以缺省方式归于无名命名空间。局部元素（c3）在局部定义中使用form=&#8220;qualified&#8221;覆盖全局设定的 unqualified，这使得c3归于目标命名空间（如果它有子元素，子元素将以缺省方式归于目标命名空间）。</p>
<p><u>qualified2.xsd</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
&lt;xs:schema&nbsp;xmlns:xs="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema%22" target="_blank">http://www.w3.org/2001/XMLSchema"</a>&nbsp;<font color="red">targetNamespace="aaaa"&nbsp;elementFormDefault="unqualified"</font>&nbsp;attributeFormDefault="unqualified"&gt;<br />
&nbsp;&lt;xs:element&nbsp;name="c"&gt;<br />
&nbsp;&nbsp;&lt;xs:complexType&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;xs:sequence&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c1"&nbsp;type="xs:double"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c2"&nbsp;type="xs:string"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;xs:element&nbsp;name="c3"&nbsp;type="xs:integer"&nbsp;<font color="red">form="qualified"</font>/&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/xs:sequence&gt;<br />
&nbsp;&nbsp;&lt;/xs:complexType&gt;<br />
&nbsp;&lt;/xs:element&gt;<br />
&lt;/xs:schema&gt;</p>
<p><br />
<u>qualified2.xml</u></p>
<p>&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;<br />
<font color="red">&lt;n:c&nbsp;xmlns:n="aaaa"</font>&nbsp;xmlns:xsi="<a class="contentlink" href="http://www.w3.org/2001/XMLSchema-instance%22" target="_blank">http://www.w3.org/2001/XMLSchema-instance"</a>&nbsp;xsi:schemaLocation="aaaa&nbsp;qualified2.xsd"&gt;<br />
&nbsp;<font color="blue">&lt;c1&gt;</font>3.141593E0<font color="blue">&lt;/c1&gt;</font><br />
&nbsp;<font color="blue">&lt;c2&gt;</font>String<font color="blue">&lt;/c2&gt;</font><br />
&nbsp;<font color="red">&lt;n:c3&gt;</font>0<font color="red">&lt;/n:c3&gt;</font><br />
<font color="red">&lt;/n:c&gt;</font></p>
[FROM]http://bbs.w3china.org/dispbbs.asp?BoardID=23&amp;replyID=19004&amp;id=25672&amp;star=1&amp;skin=0
<img src ="http://www.blogjava.net/lqxue/aggbug/202463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqxue/" target="_blank">lqx</a> 2008-05-23 17:52 <a href="http://www.blogjava.net/lqxue/archive/2008/05/23/202463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>image 自动调整大小</title><link>http://www.blogjava.net/lqxue/archive/2007/08/14/136769.html</link><dc:creator>lqx</dc:creator><author>lqx</author><pubDate>Tue, 14 Aug 2007 11:50:00 GMT</pubDate><guid>http://www.blogjava.net/lqxue/archive/2007/08/14/136769.html</guid><wfw:comment>http://www.blogjava.net/lqxue/comments/136769.html</wfw:comment><comments>http://www.blogjava.net/lqxue/archive/2007/08/14/136769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqxue/comments/commentRss/136769.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqxue/services/trackbacks/136769.html</trackback:ping><description><![CDATA[下面这段代码将把image调整的height和width都适合制定大小。<br><br>&lt;img src="xxxx" border="0" onload="resizeimage(this,170,50);"/&gt;<br><br><br>&lt;script language='javascript'&gt; <br>function resizeimage(img,maxHeight,maxWidth) <br>{ <br>var w=img.width,h=img.height; <br>if (h&gt;maxHeight) <br>{ <br>img.height=maxHeight; <br>img.width=(maxHeight/h)*w; <br>w=img.width;<br>h=img.height;<br>} <br>if (w&gt;maxWidth) <br>{ <br>img.width=maxWidth; <br>img.height=(maxWidth/w)*h; <br>} <br>} <br>&lt;/script&gt;
<img src ="http://www.blogjava.net/lqxue/aggbug/136769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqxue/" target="_blank">lqx</a> 2007-08-14 19:50 <a href="http://www.blogjava.net/lqxue/archive/2007/08/14/136769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>利用Digester把XML转换成为Java对象</title><link>http://www.blogjava.net/lqxue/archive/2007/08/06/134748.html</link><dc:creator>lqx</dc:creator><author>lqx</author><pubDate>Mon, 06 Aug 2007 09:34:00 GMT</pubDate><guid>http://www.blogjava.net/lqxue/archive/2007/08/06/134748.html</guid><wfw:comment>http://www.blogjava.net/lqxue/comments/134748.html</wfw:comment><comments>http://www.blogjava.net/lqxue/archive/2007/08/06/134748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqxue/comments/commentRss/134748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqxue/services/trackbacks/134748.html</trackback:ping><description><![CDATA[在一个比较完整的应用系统里，经常需要有一些配置文件。简单的属性使用。properties文件即可，但要配置一些复杂对象，则应该考虑使用xml文件。一般用来读取xml文件的工具包有DOM、SAX和JDOM等，但用过的人都知道，它们属于比较底层的API，写起来代码量很大，而且如果修改了xml文件的格式，代码也要做大幅度的改动。Jakarta Commons项目里的Digester包，可以轻松实现xml文件到Java对象的转换，看下面这个例子。
<p>　　在一个项目里，需要提供一些统计图，但图的内容暂时未能确定。所以我决定让图可以配置，所有定义保存在一个名为charts.xml（或国际化后的文件名如charts_zh_CN.xml，这里只考虑缺省语言）的文件内，下面是该文件的部分内容：</p>
<p>
<table style="WIDTH: 80%" borderColor=#cccccc cellSpacing=1 cellPadding=0 width="80%" align=center bgColor=#000000 border=0 heihgt="">
    <tbody>
        <tr>
            <td bgColor=#dddddd>&nbsp;&nbsp;&nbsp;&nbsp; <legendvisible>false</legendvisible><br>&nbsp;&nbsp;&nbsp; <tooltipsvisible>true</tooltipsvisible><br>&nbsp;&nbsp;&nbsp; <type>Bar</type><br>&nbsp;&nbsp;&nbsp; <labelx>时间</labelx><br>&nbsp;&nbsp;&nbsp; <labely>数据</labely><br>&nbsp;&nbsp;&nbsp; <width>500</width><br>&nbsp;&nbsp;&nbsp; <height>360</height><br>&nbsp;&nbsp;&nbsp; <hql>select count(c),<br>c.department.name <br>from edu.pku.pub.<br>aims.model.business.<br>Client c group <br>by c.department</td>
        </tr>
    </tbody>
</table>
</p>
<p>　　可以看出，我为每个图定义了id、title、legendVisible等等属性，这些属性的意义都很明显，它们将影响统计图的数据和在页面中的表现。在程序里，我需要把这个文件里的定义读到一个注册表类ChartRegistry里，该注册表维护一个java.util.List类型的registry变量，其中每个元素是一个ChartConfig类。现在Digester该显示它的价值了。</p>
<p>　　为了方便使用Digester，我们让ChartConfig也具有统计图的每个属性（id、title、legendVisible等等），名称与charts.xml里的元素的属性（子元素）一一对应，并且都具有getter和setter方法，也就是说，ChartConfig是一个bean类。在ChartRegistry类里定义一个deregister（）方法，它的作用是用Digester读入并解析指定的xml文件，代码如下；还有一个register（）方法用来把ChartConfig对象加到registry里。</p>
<p><br>&nbsp;</p>
<table cellSpacing=0 borderColorDark=#ffffff cellPadding=2 width=400 align=center borderColorLight=black border=1>
    <tbody>
        <tr>
            <td class=code style="FONT-SIZE: 9pt" bgColor=#e6e6e6>
            <pre>public void deregister(URL url) throws IOException,SAXException{<br>&nbsp; InputStream is = new FileInputStream(url.getFile());<br>&nbsp; Digester digester = new Digester();<br>&nbsp; digester.push(this);<br>&nbsp; digester.setValidating(false);<br>&nbsp; digester.addObjectCreate("charts/chart", ChartConfig.class);<br>&nbsp; digester.addSetProperties("charts/chart");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/legendVisible");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/toolTipsVisible");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/title");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/type");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/labelx");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/labely");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/width");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/height");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/hql");<br>&nbsp; digester.addBeanPropertySetter("charts/chart/description");<br>&nbsp; digester.addSetNext("charts/chart","register");<br>&nbsp; digester.parse(is);<br>&nbsp; Collections.sort(registry);<br>}</pre>
            </td>
        </tr>
    </tbody>
</table>
<p>　　基本上来说，Digester和SAX解析xml的过程很像，它的原理就是制定一些规则，在遍历每个节点时检查是否有匹配的规则，如果有就执行对应的操作。例如，上面的代码中，&#8220;digester.addObjectCreate（"charts/chart"， ChartConfig.class）；&#8221;这一句的作用是告诉Digester：如果遇到匹配&#8220;charts/chart&#8221;形式的节点，就执行一个&#8220;对象创建&#8221;操作，创建什么对象呢，应该创建Class为&#8220;ChartConfig.class&#8221;的对象；类似的，addSetProperties（）是告诉Digester将指定节点的属性全部映射到对象的属性，在这个例子里指的就是id属性；addBeanPropertySetter（）是将子节点转换为对象的属性，这个方法还可以有第二个参数，当对象的属性名和子节点的名字不一样时用来指定对象的属性名；addSetNext（）是说在遇到匹配节点后，对当前对象的父对象执行一个方法，参数是当前参数，对这个例子来说就是执行ChartConfig.register（ChartConfig）方法。因此这样构造得到的Digester会把charts.xml里的每个元素转换为一个ChartConfig对象，并register到ChartRegistry里。
<p>　　顺利得到了ChartRegister对象，我就可以在程序里根据它的内容构造统计图了（统计图一般使用jfreechart来生成，这里就不赘述了）。与Digester具有类似功能的工具包其实还有不少，例如Caster、Jato等等，我没有实际使用过它们，但因为我对用过的Jakarta其他项目都很满意（例如BeanUtils、HttpClient，品牌效应？），所以一开始就选择了Digester：简单方便。</p>
<p>from :http://java.chinaitlab.com/WebServices/715609.html</p>
<img src ="http://www.blogjava.net/lqxue/aggbug/134748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqxue/" target="_blank">lqx</a> 2007-08-06 17:34 <a href="http://www.blogjava.net/lqxue/archive/2007/08/06/134748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xpath 资料</title><link>http://www.blogjava.net/lqxue/archive/2007/08/03/134239.html</link><dc:creator>lqx</dc:creator><author>lqx</author><pubDate>Fri, 03 Aug 2007 05:47:00 GMT</pubDate><guid>http://www.blogjava.net/lqxue/archive/2007/08/03/134239.html</guid><wfw:comment>http://www.blogjava.net/lqxue/comments/134239.html</wfw:comment><comments>http://www.blogjava.net/lqxue/archive/2007/08/03/134239.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqxue/comments/commentRss/134239.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqxue/services/trackbacks/134239.html</trackback:ping><description><![CDATA[<a href="http://en.wikipedia.org/wiki/XPath">http://en.wikipedia.org/wiki/XPath</a>
<img src ="http://www.blogjava.net/lqxue/aggbug/134239.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqxue/" target="_blank">lqx</a> 2007-08-03 13:47 <a href="http://www.blogjava.net/lqxue/archive/2007/08/03/134239.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>xml 解析</title><link>http://www.blogjava.net/lqxue/archive/2007/08/01/133840.html</link><dc:creator>lqx</dc:creator><author>lqx</author><pubDate>Wed, 01 Aug 2007 09:39:00 GMT</pubDate><guid>http://www.blogjava.net/lqxue/archive/2007/08/01/133840.html</guid><wfw:comment>http://www.blogjava.net/lqxue/comments/133840.html</wfw:comment><comments>http://www.blogjava.net/lqxue/archive/2007/08/01/133840.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lqxue/comments/commentRss/133840.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lqxue/services/trackbacks/133840.html</trackback:ping><description><![CDATA[<strong>Java开源－Jdom对XML解析方法的使用指南<br><a href="http://java.ccidnet.com/art/3565/20060313/475777_1.html">http://java.ccidnet.com/art/3565/20060313/475777_1.html</a></strong> <br><br><strong>XML的四种解析器原理及性能比较<br><a href="http://bbs.chinacode.com/archiver/tid-352.html">http://bbs.chinacode.com/archiver/tid-352.html</a></strong> <br><br>Java XML API 漫谈<br><a href="http://blog.iyi.cn/user/david/archives/2005/01/204.html">http://blog.iyi.cn/user/david/archives/2005/01/204.html</a><br><br>使用 dom4j 解析 XML<br><a href="http://blog.iyi.cn/user/david/archives/2005/01/204.html">http://blog.iyi.cn/user/david/archives/2005/01/204.html</a> <br><br>用dom4j建立,修改XML文档,并解决格式化输出和中文问题<br><a href="http://www.5inet.net/WebPrograming/XMLXSL/070556.html">http://www.5inet.net/WebPrograming/XMLXSL/070556.html</a> <br>原因分析：<br>　　由于FileWriter默认的输出编码是ANSI编码，而Dom4j中的wirte方法提供的内容实际是以UTF-8保存的，因此造成了包括中文字符的XML文件无法正常阅读。<br>&nbsp;<br>解决方法：<br>&nbsp;　　不能使用简单的FileWriter，而应该是使用一个能指定具体输出编码的Writer，在JDK的io包中，&nbsp;OutputStreamWriter可以指定输出编码。<br>　　正确的代码如下：<br>&nbsp;&nbsp;&nbsp; java.io.OutputStream&nbsp;out=new&nbsp;java.io.FileOutputStream(fileName);<br>&nbsp;&nbsp;&nbsp;java.io.Writer&nbsp;wr=new&nbsp;java.io.OutputStreamWriter(out,"UTF-8");&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;doc.write(wr);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;wr.close();<br>&nbsp;&nbsp;&nbsp;out.close();<br><br>　　简化一下可以写成下面的样式：<br><br>&nbsp;&nbsp; java.io.Writer&nbsp;wr=new&nbsp;java.io.OutputStreamWriter(new&nbsp;java.io.FileOutputStream(fileName),"UTF-8");&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;doc.write(wr);&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;wr.close();<br>
<img src ="http://www.blogjava.net/lqxue/aggbug/133840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lqxue/" target="_blank">lqx</a> 2007-08-01 17:39 <a href="http://www.blogjava.net/lqxue/archive/2007/08/01/133840.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>