<?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>robertbao&#039;s website &#187; html</title>
	<atom:link href="http://www.robertbao.com/post/tag/html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.robertbao.com</link>
	<description>robertbao的个人网站</description>
	<lastBuildDate>Wed, 01 Sep 2010 07:59:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>用JTidy转换html为xml</title>
		<link>http://www.robertbao.com/post/725</link>
		<comments>http://www.robertbao.com/post/725#comments</comments>
		<pubDate>Tue, 02 Aug 2005 00:18:04 +0000</pubDate>
		<dc:creator>robertbao</dc:creator>
				<category><![CDATA[WORK]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[program]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[最近工作中要从网页提取信息，打算先把html转换成标准的xml格式，然后方便使用dom4j进行后续的解析，试用了不少现成的类库，JTidy、NekoHTML、HTML Parser、Jericho，最后还是使用了JTidy。
只是r8 snapshot还只是一个nightly builds，前面的r7版更已经是4年前的事了，这个项目就这样荒废了？可能是参与的人太少又或者是觉得已经成熟？
JTidy提供了一个语法检查器和标签补偿器，能够对各种乱七八糟的html进行修复，使之符合xhtml标准。
r8 snapshot相对于r7改变了一些参数的设置方法，特别是在字符编码处理上，用setInputEncoding和setOutputEncoding方法来确定输入和输出文件的字符编码，可以使用任何有效的Java编码名称，这就比以前的强多了。
总体上解析的结果还不错，只是有些地方还需要对生成文件进行手工调整，或者自己再编一段代码处理一下，已经不是大问题了。
一些常用的参数设置：
setAltText(java.lang.String altText)&#160;加上默认的alt属性值setBreakBeforeBR(boolean breakBeforeBR) 在换行&#60;br /&#62;之前加一空行setCharEncoding(int charencoding) 已废弃setConfigurationFromFile(java.lang.String filename) 从文件中读取配置信息setConfigurationFromProps(java.util.Properties props) 从properties中读取配置信息setErrfile(java.lang.String errfile) 错误输出文件setFixBackslash(boolean fixBackslash) URL中用/取代\setForceOutput(boolean forceOutput) 不管生成的xml是否有错，强制输出。setHideComments(boolean hideComments)&#160;结果中不生成注释setInputEncoding(java.lang.String encoding) 输入编码setLogicalEmphasis(boolean logicalEmphasis) 用em替代i，strong替代bsetMessageListener(TidyMessageListener listener) 加入一个TidyMessageListener监听器setOnlyErrors(boolean onlyErrors)&#160;只输出错误文件setOutputEncoding(java.lang.String encoding)&#160;输出编码setPrintBodyOnly(boolean bodyOnly)&#160;只输出body中的部分setRepeatedAttributes(int repeatedAttributes)&#160;重复属性的处理setSpaces(int spaces)&#160;每行前的空格数，就是缩进格式setTidyMark(boolean tidyMark)&#160;是否生成tidy标记setTrimEmptyElements(boolean trimEmpty)&#160;不输出空元素setUpperCaseAttrs(boolean upperCaseAttrs)&#160;属性变大写setUpperCaseTags(boolean upperCaseTags)&#160;标记变大写setWraplen(int wraplen)&#160;多长换行setXHTML(boolean xhtml)&#160;输出xhtmlsetXmlOut(boolean xmlOut) 输出xmlsetXmlPi(boolean xmlPi)&#160;文件头输出xml标记setXmlSpace(boolean xmlSpace) 加入xml名字空间属性
使用方法极为easy，定义输入输出流，用tidy.parse()转换就行了：
BufferedInputStream in;
FileOutputStream out;
Tidy tidy = new Tidy();
tidy.setConfigurationFromFile(configFileName);//配置文件，写入上面的设置参数
try {
in = new BufferedInputStream(new FileInputStream(srcFileName));
out [...]]]></description>
			<content:encoded><![CDATA[<p>最近工作中要从网页提取信息，打算先把html转换成标准的xml格式，然后方便使用dom4j进行后续的解析，试用了不少现成的类库，JTidy、NekoHTML、HTML Parser、Jericho，最后还是使用了JTidy。</p>
<p>只是r8 snapshot还只是一个nightly builds，前面的r7版更已经是4年前的事了，这个项目就这样荒废了？可能是参与的人太少又或者是觉得已经成熟？</p>
<p><span class="style7">JTidy</span>提供了一个语法检查器和标签补偿器，能够对各种乱七八糟的html进行修复，使之符合xhtml标准。</p>
<p>r8 snapshot相对于r7改变了一些参数的设置方法，特别是在字符编码处理上，用setInputEncoding和setOutputEncoding方法来确定输入和输出文件的字符编码，可以使用任何有效的Java编码名称，这就比以前的强多了。</p>
<p>总体上解析的结果还不错，只是有些地方还需要对生成文件进行手工调整，或者自己再编一段代码处理一下，已经不是大问题了。</p>
<p><strong>一些常用的参数设置：</strong></p>
<p>setAltText(java.lang.String altText)&nbsp;<br />加上默认的alt属性值<br />setBreakBeforeBR(boolean breakBeforeBR) <br />在换行&lt;br /&gt;之前加一空行<br />setCharEncoding(int charencoding) <br />已废弃<br />setConfigurationFromFile(java.lang.String filename) <br />从文件中读取配置信息<br />setConfigurationFromProps(java.util.Properties props) <br />从properties中读取配置信息<br />setErrfile(java.lang.String errfile) <br />错误输出文件<br />setFixBackslash(boolean fixBackslash) <br />URL中用/取代\<br />setForceOutput(boolean forceOutput) <br />不管生成的xml是否有错，强制输出。<br />setHideComments(boolean hideComments)&nbsp;<br />结果中不生成注释<br />setInputEncoding(java.lang.String encoding) <br />输入编码<br />setLogicalEmphasis(boolean logicalEmphasis) <br />用em替代i，strong替代b<br />setMessageListener(TidyMessageListener listener) <br />加入一个TidyMessageListener监听器<br />setOnlyErrors(boolean onlyErrors)&nbsp;<br />只输出错误文件<br />setOutputEncoding(java.lang.String encoding)&nbsp;<br />输出编码<br />setPrintBodyOnly(boolean bodyOnly)&nbsp;<br />只输出body中的部分<br />setRepeatedAttributes(int repeatedAttributes)&nbsp;<br />重复属性的处理<br />setSpaces(int spaces)&nbsp;<br />每行前的空格数，就是缩进格式<br />setTidyMark(boolean tidyMark)&nbsp;<br />是否生成tidy标记<br />setTrimEmptyElements(boolean trimEmpty)&nbsp;<br />不输出空元素<br />setUpperCaseAttrs(boolean upperCaseAttrs)&nbsp;<br />属性变大写<br />setUpperCaseTags(boolean upperCaseTags)&nbsp;<br />标记变大写<br />setWraplen(int wraplen)&nbsp;<br />多长换行<br />setXHTML(boolean xhtml)&nbsp;<br />输出xhtml<br />setXmlOut(boolean xmlOut) <br />输出xml<br />setXmlPi(boolean xmlPi)&nbsp;<br />文件头输出xml标记<br />setXmlSpace(boolean xmlSpace) <br />加入xml名字空间属性</p>
<p><strong>使用方法极为easy，定义输入输出流，用tidy.parse()转换就行了：</strong></p>
<p>BufferedInputStream in;</p>
<p>FileOutputStream out;</p>
<p>Tidy tidy = new Tidy();</p>
<p>tidy.setConfigurationFromFile(configFileName);//配置文件，写入上面的设置参数</p>
<p>try {</p>
<p>in = new BufferedInputStream(new FileInputStream(srcFileName));</p>
<p>out = new FileOutputStream(outFileName);</p>
<p>tidy.parse(in, out);</p>
<p>} catch (IOException e) {</p>
<p>System.out.println(e);</p>
<p>}<br />&nbsp;</p>
<h3>相关文章</h3>
<ul class="related_post">
<li>2008-09-15 &#8212; <a href="http://www.robertbao.com/post/1199" title="轻量级统一会计系统">轻量级统一会计系统 (0)</a></li>
<li>2008-07-05 &#8212; <a href="http://www.robertbao.com/post/1198" title="项目组餐饮结算系统">项目组餐饮结算系统 (0)</a></li>
<li>2007-06-26 &#8212; <a href="http://www.robertbao.com/post/1193" title="我的Antfile模板">我的Antfile模板 (0)</a></li>
<li>2010-01-29 &#8212; <a href="http://www.robertbao.com/post/1204" title="简易开发管理工具">简易开发管理工具 (1)</a></li>
<li>2009-09-01 &#8212; <a href="http://www.robertbao.com/post/1206" title="程序员的自我修养、高效实践和自动化">程序员的自我修养、高效实践和自动化 (1)</a></li>
<li>2009-07-25 &#8212; <a href="http://www.robertbao.com/post/1175" title="Java SE for Business&#8211;Java收费版">Java SE for Business&#8211;Java收费版 (3)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robertbao.com/post/725/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>圆角矩形的css表示</title>
		<link>http://www.robertbao.com/post/568</link>
		<comments>http://www.robertbao.com/post/568#comments</comments>
		<pubDate>Mon, 20 Jun 2005 04:07:04 +0000</pubDate>
		<dc:creator>robertbao</dc:creator>
				<category><![CDATA[WORK]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[1、圆角矩形的代码段，方法用的比较巧妙，就是用5张不同的图片作背景来表示出这种效果。
2、css代码：
/*&#160;后四张图片四分之一圆内部用第一张图片的颜色，外部用包含这个矩形的背景颜色 */.rbroundbox { background: url(nt.gif) repeat; }/* 矩形内容背景图片*/.rbtop div { background: url(tl.gif) no-repeat top left; }/* 左上角图片 */.rbtop { background: url(tr.gif) no-repeat top right; }/*&#160;右上角图片 */.rbbot div { background: url(bl.gif) no-repeat bottom left; }/*&#160;左下角图片 */.rbbot { background: url(br.gif) no-repeat bottom right; }/* 右下角图片*/
.rbtop div, .rbtop, .rbbot div, .rbbot {width: 100%;height: 7px;font-size: 1px;}.rbcontent { margin: 0 [...]]]></description>
			<content:encoded><![CDATA[<p>1、圆角矩形的代码段，方法用的比较巧妙，就是用5张不同的图片作背景来表示出这种效果。</p>
<p>2、css代码：</p>
<p>/*&nbsp;后四张图片四分之一圆内部用第一张图片的颜色，外部用包含这个矩形的背景颜色 */<br />.rbroundbox { background: url(nt.gif) repeat; }/* 矩形内容背景图片*/<br />.rbtop div { background: url(tl.gif) no-repeat top left; }/* 左上角图片 */<br />.rbtop { background: url(tr.gif) no-repeat top right; }/*&nbsp;右上角图片 */<br />.rbbot div { background: url(bl.gif) no-repeat bottom left; }/*&nbsp;左下角图片 */<br />.rbbot { background: url(br.gif) no-repeat bottom right; }/* 右下角图片*/</p>
<p>.rbtop div, .rbtop, .rbbot div, .rbbot {<br />width: 100%;<br />height: 7px;<br />font-size: 1px;<br />}<br />.rbcontent { margin: 0 7px; }<br />.rbroundbox { width: 50%; margin: 1em auto; }</p>
<p>3、html代码：</p>
<p>&lt;div class=&quot;rbroundbox&quot;&gt;<br />&lt;div class=&quot;rbtop&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;<br />&lt;div class=&quot;rbcontent&quot;&gt;<br />&lt;p&gt;马英九表示，他对当局护渔的一贯态度，就是当局表现不佳，让日本欺负我们渔民，太不象话，他曾经多次表达强烈反对。他说，在野党只能呼吁，我们的态度应该是&ldquo;扩大护渔、不惜一战、以战逼和&rdquo;，让日本愿意上谈判桌，划出渔区做出承诺，要真的拿出办法才行，否则相同的情况会一再重演。&lt;/p&gt;<br />&lt;/div&gt;&lt;!&#8211; /rbcontent &#8211;&gt;<br />&lt;div class=&quot;rbbot&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;<br />&lt;/div&gt;&lt;!&#8211; /rbroundbox &#8211;&gt;</p>
<p>4、本站css暂未加入这个，所以暂时还看不到效果。</p>
<h3>相关文章</h3>
<ul class="related_post">
<li>2004-02-26 &#8212; <a href="http://www.robertbao.com/post/586" title="显示图片渐隐效果">显示图片渐隐效果 (1)</a></li>
<li>2009-01-25 &#8212; <a href="http://www.robertbao.com/post/1176" title="OperaTor&#8211;带Tor的浏览器">OperaTor&#8211;带Tor的浏览器 (1)</a></li>
<li>2007-04-03 &#8212; <a href="http://www.robertbao.com/post/1194" title="weblogic与httpd整合">weblogic与httpd整合 (0)</a></li>
<li>2006-08-18 &#8212; <a href="http://www.robertbao.com/post/1060" title="Web2.0样式的logo">Web2.0样式的logo (2)</a></li>
<li>2006-05-18 &#8212; <a href="http://www.robertbao.com/post/1050" title="Google Web Toolkit发布">Google Web Toolkit发布 (4)</a></li>
<li>2006-02-07 &#8212; <a href="http://www.robertbao.com/post/964" title="Mozilla新项目SeaMonkey">Mozilla新项目SeaMonkey (0)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robertbao.com/post/568/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>显示图片渐隐效果</title>
		<link>http://www.robertbao.com/post/586</link>
		<comments>http://www.robertbao.com/post/586#comments</comments>
		<pubDate>Thu, 26 Feb 2004 10:31:49 +0000</pubDate>
		<dc:creator>robertbao</dc:creator>
				<category><![CDATA[WORK]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[用下面的代码可以在网页中显示图片渐隐效果(IE中有效)：
1.Script代码：
&#60;SCRIPT&#62;nereidFadeObjects = new Object();nereidFadeTimers = new Object();function nereidFade(object, destOp, rate, delta){if (!document.all)return&#160; if (object != &#34;[object]&#34;){&#160; &#160;&#160;&#160;&#160;&#160; setTimeout(&#34;nereidFade(&#34;+object+&#34;,&#34;+destOp+&#34;,&#34;+rate+&#34;,&#34;+delta+&#34;)&#34;,0);&#160;&#160;&#160;&#160;&#160; return;&#160; }&#160;&#160;&#160;&#160;&#160; &#160; clearTimeout(nereidFadeTimers[object.sourceIndex]);&#160; &#160; diff = destOp-object.filters.alpha.opacity;&#160; direction = 1;&#160; if (object.filters.alpha.opacity &#62; destOp){&#160;&#160;&#160;&#160;&#160; direction = -1;&#160; }&#160; delta=Math.min(direction*diff,delta);&#160; object.filters.alpha.opacity+=direction*delta;
&#160; if (object.filters.alpha.opacity != destOp){&#160;&#160;&#160;&#160;&#160; nereidFadeObjects[object.sourceIndex]=object;&#160;&#160;&#160;&#160;&#160; nereidFadeTimers[object.sourceIndex]=setTimeout(&#34;nereidFade(nereidFadeObjects[&#34;+object.sourceIndex+&#34;],&#34;+destOp+&#34;,&#34;+rate+&#34;,&#34;+delta+&#34;)&#34;,rate);&#160; }}&#60;/SCRIPT&#62;
2.html代码：
&#60;img src=&#34;http://www.google.com/images/logo_sm.gif&#34; id=&#34;logo&#34; border=0 style=&#34;FILTER: alpha(opacity=50)&#34; onMouseOver=nereidFade(this,100,40,5) onMouseOut=nereidFade(this,30,40,5)&#62;
3.可以自己测试一下效果，我这里就不显示了。
相关文章

2005-06-20 &#8212; 圆角矩形的css表示 [...]]]></description>
			<content:encoded><![CDATA[<p>用下面的代码可以在网页中显示图片渐隐效果(IE中有效)：</p>
<p>1.Script代码：</p>
<p>&lt;SCRIPT&gt;<br />nereidFadeObjects = new Object();<br />nereidFadeTimers = new Object();<br />function nereidFade(object, destOp, rate, delta){<br />if (!document.all)<br />return<br />&nbsp; if (object != &quot;[object]&quot;){&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setTimeout(&quot;nereidFade(&quot;+object+&quot;,&quot;+destOp+&quot;,&quot;+rate+&quot;,&quot;+delta+&quot;)&quot;,0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return;<br />&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp; clearTimeout(nereidFadeTimers[object.sourceIndex]);<br />&nbsp; <br />&nbsp; diff = destOp-object.filters.alpha.opacity;<br />&nbsp; direction = 1;<br />&nbsp; if (object.filters.alpha.opacity &gt; destOp){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; direction = -1;<br />&nbsp; }<br />&nbsp; delta=Math.min(direction*diff,delta);<br />&nbsp; object.filters.alpha.opacity+=direction*delta;</p>
<p>&nbsp; if (object.filters.alpha.opacity != destOp){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nereidFadeObjects[object.sourceIndex]=object;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nereidFadeTimers[object.sourceIndex]=setTimeout(&quot;nereidFade(nereidFadeObjects[&quot;+object.sourceIndex+&quot;],&quot;+destOp+&quot;,&quot;+rate+&quot;,&quot;+delta+&quot;)&quot;,rate);<br />&nbsp; }<br />}<br />&lt;/SCRIPT&gt;</p>
<p>2.html代码：</p>
<p>&lt;img src=&quot;http://www.google.com/images/logo_sm.gif&quot; id=&quot;logo&quot; border=0 style=&quot;FILTER: alpha(opacity=50)&quot; onMouseOver=nereidFade(this,100,40,5) onMouseOut=nereidFade(this,30,40,5)&gt;</p>
<p>3.可以自己测试一下效果，我这里就不显示了。</p>
<h3>相关文章</h3>
<ul class="related_post">
<li>2005-06-20 &#8212; <a href="http://www.robertbao.com/post/568" title="圆角矩形的css表示">圆角矩形的css表示 (3)</a></li>
<li>2009-01-25 &#8212; <a href="http://www.robertbao.com/post/1176" title="OperaTor&#8211;带Tor的浏览器">OperaTor&#8211;带Tor的浏览器 (1)</a></li>
<li>2007-04-03 &#8212; <a href="http://www.robertbao.com/post/1194" title="weblogic与httpd整合">weblogic与httpd整合 (0)</a></li>
<li>2006-08-18 &#8212; <a href="http://www.robertbao.com/post/1060" title="Web2.0样式的logo">Web2.0样式的logo (2)</a></li>
<li>2006-05-18 &#8212; <a href="http://www.robertbao.com/post/1050" title="Google Web Toolkit发布">Google Web Toolkit发布 (4)</a></li>
<li>2006-02-07 &#8212; <a href="http://www.robertbao.com/post/964" title="Mozilla新项目SeaMonkey">Mozilla新项目SeaMonkey (0)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.robertbao.com/post/586/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
