Now that I've walked you through how to convert your HTML to XHTML manually, I'm going to drive you
crazy by telling you that there is a program that does it for you.
HTML Tidy
HTML guru Dave Raggett has written a program called HTML Tidy that "tidies up" your HTML by fixing
all the previously detailed problems, including: - Misplacement of elements - Uppercase versus lowercase elements and attributes - Quotes around attribute values - Adding correct XHTML declarations and namespaces when prompted
You can download this small application from its Web site
(http://www.w3.org/People/Raggett/tidy/) and use it to auto-convert your own HTML. This
has been ported to many platforms, and on the HTML Tidy Web site you can find the pre-compiled
binaries for almost any operating system you are running.
To convert your HTML document to XHTML using Tidy, all you have to do is make sure
tidy.exe (the
application name) is accessible from your HTML files directory. Then use the following line:
tidy –asxml –clean filename.html > filename.xhtml
Running Tidy without any flags lowercases all elements and attributes, ensures all attribute values have
quotes, and checks that the HTML is well formed with no stray elements. The -asxml flag adds in all
the XHTML features including the namespace declaration, the XHTML DOCTYPE declaration, and the
XML declaration. It also makes sure all the "empty" elements are formatted correctly for XHTML. Finally,
the -clean flag converts <font> elements and center attributes to their CSS counterparts.
Unfortunately, you have to do a little more tweaking if you want to have it do the same with elements
such as <b>. Because Tidy has to fix the formatting of the <b> element and put both tags in the correct
location, it doesn't convert it to CSS. Another run through Tidy and the problems are fixed.
If you're comfortable with Tidy directly modifying your original document, you can add the -modify flag
to make all changes in the source document.
Let's take a look at what HTML Tidy does to your original HTML document:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>BK's Home Page</title>
<style type="text/css">
h1.c1 {color: red; text-align: center}
</style>
</head>
<body bgcolor="#ffffff">
<h1 class="c1">BK's Home Page</h1>
This is the homepage of BK DeLong. Enjoy your visit!
<p> My EverQuest Friends:<br />
<a href="http://www.attrition.org/eq/crimen/"><b>Crimen
Talionis</b></a><br />
MacIntyre<br />
Kiekre<br />
Krimzor<br />
Catya</p>
<hr />
<b>B.K. DeLong<br />
<a href="mailto:bkdelong@zotgroup.com">
bkdelong@zotgroup.com</a></b>
</body>
</html>
Note
Notice that HTML Tidy has taken the CSS and converted it into a class reference
as opposed to entering it inline. This is because there is only one <h1> in the
document and therefore it can have a global style reference.
There have been many concerns that use of HTML Tidy for an HTML to XHTML conversion can screw
up some complex pages. Let's take a look at the UMass News Office Web site
(http://www.umass.edu/newsoffice)
This is a good example of a page coded in complex HTML using tables for precise layout.
<html>
<head>
<title>UMass News Office</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT language="JavaScript">
<!-- Begin
var day="";var month="";
var ampm="";var ampmhour="";
var myweekday="";var year="";
var oneDate = new Date()
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getFullYear(); <!--- THIS LINE CHANGES ----->
year = myyear;
myhours = mydate.getHours();
ampmhour = (myhours > 12) ? myhours - 12 : myhours;
ampm = (myhours >= 12) ? ' PM' : ' AM';
mytime = mydate.getMinutes();
myminutes = ((mytime < 10) ? ':0' : ':') + mytime;
if(myday == 0)
day = " Sunday, ";
else if(myday == 1)
day = " Monday, ";
else if(myday == 2)
day = " Tuesday, ";
else if(myday == 3)
day = " Wednesday, ";
else if(myday == 4)
day = " Thursday, ";
else if(myday == 5)
day = " Friday, ";
else if(myday == 6)
day = " Saturday, ";
if(mymonth == 0) {
month = "January ";}
else if(mymonth ==1)
month = "February ";
else if(mymonth ==2)
month = "March ";
else if(mymonth ==3)
month = "April ";
else if(mymonth ==4)
month = "May ";
else if(mymonth ==5)
month = "June ";
else if(mymonth ==6)
month = "July ";
else if(mymonth ==7)
month = "August ";
else if(mymonth ==8)
month = "September ";
else if(mymonth ==9)
month = "October ";
else if(mymonth ==10)
month = "November ";
else if(mymonth ==11)
month = "December ";
// End -->
</SCRIPT>
</head>
<body bgcolor="#FFFFFF" background="images/bkg.gif" link="#003887"
vlink="#006666" alink="#006666">
<!================= RED MARGIN TABLE COLOR = 640000 WIDTH = 620
CELLPADDING=2 =================>
align="center">
<tr align="center" valign="top">
<td height="0">
<table width="98%" border="0" cellspacing="7" align="center">
<tr align="left">
<td width="103" valign="top" bgcolor="#FFFFFF"><img
src="images/logo_head.gif"
width="102" height="100" alt="UMass Logo"></td>
<td width="183" valign="top" bgcolor="#FFFFFF">
<div align="right"><img src="images/news_head.gif" width="180"
height="99"></div>
</td>
<td colspan="2" valign="top" bgcolor="#FFFFFF">
<div align="left"><img src="images/mass_head.gif" width="297"
height="99"></div>
</td>
</tr>
<tr align="left">
<td colspan="4" height="2" valign="top" bgcolor="#FFFFFF">
<div align="left"><font size="-7"> <img src="images/1pt.gif" width="600"
height="1" alt="""" border="0">
</font></div>
</td>
</tr>
<tr align="left">
<td height="2" bgcolor="#FFFFFF" colspan="4">
<div align="center"> <font face="Sabon, Times New Roman, Palatino,
serif" size="3">
<script>
<!--//
document.write()
document.write(day + month);
document.write(myweekday + ", " + year);<!---------------------- THIS LINE
CHANGES ----->
// -->
</script>
</font></div>
</td>
</tr>
<tr align="left">
<td colspan="4" height="2" valign="top" bgcolor="#FFFFFF">
<div align="left"><img src="images/2pt.gif" width="600" height="5"
alt="""" border="0">
</div>
</td>
</tr>
<tr align="left"> <!========== UPDATE TIME/DATE STAMP GOES HERE
==========================>
<td colspan="2" bgcolor="#FFFFFF" height="0" valign="top"><font
face="Verdana, Arial, Helvetica, sans-serif" size="1">UPDATED
12:52 P.M. APR. 21, 2000 ET<br>
<a href="summary/index.html">DAILY NEWS SUMMARY</a></font></td>
<td bgcolor="#FFFFFF" height="0" valign="top">
<div align="left"><font size="1" face="Arial, Helvetica, sans-serif">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">»</font>
<font face="Verdana, Arial, Helvetica, sans-serif"><i>Get
UMass news by <a href="update/">email</a> or on your
<a href="pda/">handheld</a>
device.</i></font></font></div>
</td>
</td>
<td bgcolor="#FFFFFF" height="0" valign="top" align="right">
<form action="http://cronos.oit.umass.edu/cgi-bin/query" name="">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<input type=hidden name=mss value=simple>
<input type=hidden name=pg value=q>
<input type=hidden name=what value=web>
<input type=hidden name=fmt value=.>
<input type=hidden name=who value="This form queries News Office pages.">
<input type=hidden name=filter value="url:http://www.umass.edu/newsoffice">
<input type="text" name="q" size="8" value="">
<input type=submit name="Submit" value="Find">
</font>
</form>
</td>
</tr>
<tr align="left">
<td colspan="2" valign="top" rowspan="2" bgcolor="#FFFFFF" height="0">
<p align="left"><font size="2" face="Verdana, Arial,
Helvetica, sans-serif"><b><a href="archive/2000/042100fashion.html">NY
Journalist Sees "End of Fashion"</a></b><br>
Journalist Teri Agins, senior special writer for the <i>Wall
Street Journal,</i> will speak on "The End of Fashion: The
Mass Marketing of the Clothing Business," at UMass Thurs.
April 27 at 4 p.m. Her topic is also the focus of her new
article, published by William Morrow & Company. The lecture is
free and open to the public. </font></p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica,
sans-serif"><a href="archive/2000/042000meyers.html"><b>Basketball
Hall-of-Famer Ann Meyers<br>
Available for Interviews</b></a><br>
Ann Meyers, the sports broadcaster and Basketball Hall-of-Famer
who signed with the Indiana Pacers in 1979, is available for
interviews in connection with the UMass Salute to Athletics
Dinner April 26 at the Fairmont Copley Plaza Hotel in Boston.
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Meyers
is the aunt of UMass volleyball champion Jill Meyers. </font>
</p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica,
sans-serif"><b><a href="archive/2000/042000capsule.html">UMass
to Dedicate Time Capsule</a></b><br>
UMass will dedicate its Year 2000 Time Capsule in a campus
celebration May 1 at 4 p.m. on the library lawn. In addition
to a brief dedication ceremony, the event will feature music,
T-shirts, food, and prizes, as well as an opportunity for
students to have their photographs taken for placement in
the time capsule.</font> </p>
</td>
<td width="160" valign="top" bgcolor="#FFFFFF" height="0">
<p align="left"><font size="1" face="Verdana, Arial, Helvetica,
sans-serif"><b><img src="photos/iris.jpg" width="160" height="188"><br>
Apr. 21</b><b> |</b> Photo of a spring lily from Morrill Greenhouse
</font></p>
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>
<font size="2"><br>
Trends & Ideas:</font><br>
Street Journal,</i> will speak on "The End of Fashion: The
Mass Marketing of the Clothing Business," at UMass Thurs.
April 27 at 4 p.m. Her topic is also the focus of her new
article, published by William Morrow & Company. The lecture is
free and open to the public. </font></p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica,
sans-serif"><a href="archive/2000/042000meyers.html"><b>Basketball
Hall-of-Famer Ann Meyers<br>
Available for Interviews</b></a><br>
Ann Meyers, the sports broadcaster and Basketball Hall-of-Famer
who signed with the Indiana Pacers in 1979, is available for
interviews in connection with the UMass Salute to Athletics
Dinner April 26 at the Fairmont Copley Plaza Hotel in Boston.
</font><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Meyers
is the aunt of UMass volleyball champion Jill Meyers. </font>
</p>
<p align="left"><font size="2" face="Verdana, Arial, Helvetica,
sans-serif"><b><a href="archive/2000/042000capsule.html">UMass
to Dedicate Time Capsule</a></b><br>
UMass will dedicate its Year 2000 Time Capsule in a campus
celebration May 1 at 4 p.m. on the library lawn. In addition
to a brief dedication ceremony, the event will feature music,
T-shirts, food, and prizes, as well as an opportunity for
students to have their photographs taken for placement in
the time capsule.</font> </p>
</td>
<td width="160" valign="top" bgcolor="#FFFFFF" height="0">
<p align="left"><font size="1" face="Verdana, Arial, Helvetica,
sans-serif"><b><img src="photos/iris.jpg" width="160" height="188"><br>
Apr. 21</b><b> |</b> Photo of a spring lily from Morrill Greenhouse
</font></p>
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>
<font size="2"><br>
Trends & Ideas:</font><br>
</b>» <a href="http://www.umass.edu/newsoffice/archive/
2000/041200research.html">Researchers
Build Something from (Almost) Nothing</a></font></p>
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif">»
<a href="archive/2000/041200williams.html">Student Wins Prestigious
Goldwater Scholarship</a> </font></p>
<p><font size="1" face="Verdana, Arial, Helvetica, sans-serif">»
<a href="archive/2000/041100suspend.html">Chancellor Orders
Security Cameras</a> </font></p>
</td>
<td width="123" valign="top" bgcolor="#660000" height="0">
<div align="right">
<p align="left"><a href="archive/"><img src="images/btn_mir.gif"
width="119" height="37" border="0" alt="Archives"></a><br>
<a href="engines/"><img src="images/btn_engine.gif" width="119"
height="38" border="0" alt="Search Engines"></a><a href="audio/"><img
src="images/btn_audio.gif" width="119" height="35" border="0" alt="Web
Audio"></a><br>
<a href="experts/"><img src="images/btn_exp.gif" width="119"
height="37" border="0" alt="Experts Online"></a><br>
<a href="prkit/"><img src="images/btn_photo.gif" width="119"
height="25" border="0" alt="Press Kits"></a><br>
<a href="hfiles/faq.html"><img src="images/btn_faq.gif"
width="119" height="26" border="0" alt="Frequently Asked Question"></a><br>
<a href="update/"><img src="images/btn_updt.gif" width="119"
height="35" border="0" alt="UMass Update"></a><br>
<a href="pubs/"><img src="images/btn_pubs.gif" width="119"
height="37" border="0" alt="UMass Periodicals"></a><br>
<a href="http://www.fivecolleges.edu"><img src="images/btn_5col.gif"
width="119" height="35" border="0" alt="Five College News"></a><br>
<a href="hfiles/staff.html"><img src="images/btn_staff.gif" width="119"
height="25" border="0" alt="Ask an Editor"></a><br>
<a href="hfiles/feedback.html"><img src="images/btn_feedback.gif"
width="119" height="26" border="0" alt="Feedback"></a>
</div>
</td>
</tr>
<tr bgcolor="#FFFFFF" align="left">
<td width="165" height="0" valign="top" bgcolor="#CCCC99">
<table width="100%" border="0" cellspacing="6" cellpadding="0">
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="hfiles/foia.html">Guide
to the FOIA & Mass. Public Document Laws</a></font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="hfiles/tools.html">Media/Reference
Links</a></font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="hometn/index.html">Hometown
News</a></font></td>
</tr>
<tr>
<td><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
<a href="newsline/1299.html">News
Office News<i>Line</i></a></font></td>
</tr>
</table>
</td>
<td width="123" height="0" valign="top" bgcolor="#FFCC66">
<div align="left">
<p align="center"><a href="http://www.campaign.umass.edu">
<img src="images/campaign_btn.gif" width="123" height="39" alt="News from
Campaign UMass" border="0"></a><font size="1" face="Verdana, Arial,
Helvetica, sans-serif"><br>
<br>
<br>
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
<a href="archive/2000/041400campaign.html"><font size="1">Campaign
Tops <br>
$100 Million Mark</font></a><b></b></font></p>
</div>
</td>
</tr>
<tr align="left">
<td colspan="4" valign="top" bgcolor="#FFFFFF">
<div align="center"><img src="images/3pt.gif" width="600" height="2"
alt="""" border="0"></div>
</td>
</tr>
<tr align="left">
<td colspan="4" valign="top" bgcolor="#FFFFFF" height="0">
<p><img src="images/sm_logo.gif" width="72" height="63" align="left"
alt="UMass Logo" border="0"><font size="2"><br>
This is an <a href="http://www.umass.edu/umhome/official.html">Official
Publication</a> of the University of Massachusetts Amherst
Campus.</font></p>
<p><font size="2">Copyright © 1997-2000. <a href="hfiles/
about.html">About
this site</a> | <a href="hfiles/usage.html">Usage Agreement</a>
| <a href="http://www.umass.edu/umhome/index.html">UMass Home
Page</a></font></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Here is the same code after its run through Tidy:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0043)http://www.umass.edu/newsoffice/nonova.html -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org" />
<title>UMass News Office</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<script type="text/javascript" language="JavaScript">
<!-- Begin
var day="";
var month="";
var ampm="";
var ampmhour="";
var myweekday="";
var year="";
var oneDate = new Date()
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getFullYear(); <!---- THIS LINE CHANGES ----->
year = myyear;
myhours = mydate.getHours();
ampmhour = (myhours > 12) ? myhours - 12 : myhours;
ampm = (myhours >= 12) ? ' PM' : ' AM';
mytime = mydate.getMinutes();
myminutes = ((mytime < 10) ? ':0' : ':') + mytime;
if(myday == 0)
day = " Sunday, ";
else if(myday == 1)
day = " Monday, ";
else if(myday == 2)
day = " Tuesday, ";
else if(myday == 3)
day = " Wednesday, ";
else if(myday == 4)
day = " Thursday, ";
else if(myday == 5)
day = " Friday, ";
else if(myday == 6)
day = " Saturday, ";
if(mymonth == 0) {
month = "January ";}
else if(mymonth ==1)
month = "February ";
else if(mymonth ==2)
month = "August ";
else if(mymonth ==8)
month = "September ";
else if(mymonth ==9)
month = "October ";
else if(mymonth ==10)
month = "November ";
else if(mymonth ==11)
month = "December ";
// End -->
</script>
<meta content="MSHTML 5.50.3825.1300" name="GENERATOR" />
</head>
<body vlink="#006666" alink="#006666" link="#003887"
bgcolor="#ffffff" background="newsoffice_files/bkg.gif">
<table cellspacing="0" cellpadding="2" width="600" align="center"
border="0">
<tbody>
<tr valign="top" align="middle" bgcolor="#640000">
<td height="0">
<table cellpadding="5" width="100%" align="center"
bgcolor="#ffffff" border="0">
<tbody>
<tr valign="top" align="middle">
<td height="0">
<table cellspacing="7" width="98%" align="center" border="0">
<tbody>
<tr align="left">
<td valign="top" width="103" bgcolor="#ffffff"><img height="100"
alt="UMass Logo" src="newsoffice_files/logo_head.gif"
width="102" /></td>
<td valign="top" width="183" bgcolor="#ffffff">
<div align="right"><img height="99"
src="newsoffice_files/news_head.gif" width="180" /></div>
</td>
<td valign="top" bgcolor="#ffffff" colspan="2">
<div align="left"><img height="99"
src="newsoffice_files/mass_head.gif" width="297" /></div>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="4" height="2">
<div align="left"><font size="-7"><img height="1" alt='""'
src="newsoffice_files/1pt.gif" width="600" border="0" />
</font></div>
</td>
</tr>
<tr align="left">
<td bgcolor="#ffffff" colspan="4" height="2">
<div align="center"><font
face="Sabon, Times New Roman, Palatino, serif" size="3">
<script type="text/javascript">
<!--//
document.write()
document.write(day + month);
document.write(myweekday + ", " + year);<!---THIS LINE CHANGES--->
// -->
</script>
</font></div>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="4" height="2">
<div align="left"><img height="5" alt='""'
src="newsoffice_files/2pt.gif" width="600" border="0" /></div>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="2" height="0"><font
face="Verdana, Arial, Helvetica, sans-serif" size="1">UPDATED 12:52
P.M. APR. 21, 2000 ET<br />
<a href="http://www.umass.edu/newsoffice/summary/index.html">DAILY
NEWS SUMMARY</a></font></td>
<td valign="top" bgcolor="#ffffff" height="0">
<div align="left"><font face="Arial, Helvetica, sans-serif"
size="1"><font face="Verdana, Arial, Helvetica, sans-serif"
size="1">»</font> <font
face="Verdana, Arial, Helvetica, sans-serif"><i>Get UMass news by
<a href="http://www.umass.edu/newsoffice/update/">email</a> or on
your <a href="http://www.umass.edu/newsoffice/pda/">handheld</a>
device.</i></font></font></div>
</td>
<td valign="top" align="right" bgcolor="#ffffff" height="0">
<form name="" action="http://cronos.oit.umass.edu/cgi-bin/query">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1"><input
type="hidden" value="simple" name="mss" /> <input type="hidden"
value="q" name="pg" /> <input type="hidden" value="web"
name="what" /> <input type="hidden" value="." name="fmt" /> <input
type="hidden" value="This form queries News Office pages."
name="who" /> <input type="hidden"
value="url:http://www.umass.edu/newsoffice" name="filter" /> <input
size="8" name="q" /> <input type="submit" value="Find"
name="Submit" /></font></form>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="2" height="0"
rowspan="2">
<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2"><b><a
href="http://www.umass.edu/newsoffice/archive/2000/042100fashion.html">
NY Journalist Sees "End of Fashion"</a></b><br />
Journalist Teri Agins, senior special writer for the <i>Wall Street
Journal,</i> will speak on "The End of Fashion: The Mass Marketing
of the Clothing Business," at UMass Thurs. April 27 at 4 p.m. Her
topic is also the focus of her new article, published by William
Morrow & Company. The lecture is free and open to the
public.</font></p>
<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2"><a
href="http://www.umass.edu/newsoffice/archive/2000/042000meyers.html">
<b>Basketball Hall-of-Famer Ann Meyers<br />
Available for Interviews</b></a><br />
Ann Meyers, the sports broadcaster and Basketball Hall-of-Famer who
signed with the Indiana Pacers in 1979, is available for interviews
in connection with the UMass Salute to Athletics Dinner April 26 at
the Fairmont Copley Plaza Hotel in Boston.</font> <font
face="Verdana, Arial, Helvetica, sans-serif" size="2">Meyers is the
aunt of UMass volleyball champion Jill Meyers.</font></p>
<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"
size="2"><b><a
href="http://www.umass.edu/newsoffice/archive/2000/042000capsule.html">
UMass to Dedicate Time Capsule</a></b><br />
UMass will dedicate its Year 2000 Time Capsule in a campus
celebration May 1 at 4 p.m. on the library lawn. In addition to a
brief dedication ceremony, the event will feature music, T-shirts,
food, and prizes, as well as an opportunity for students to have
their photographs taken for placement in the time
capsule.</font></p>
</td>
<td valign="top" width="160" bgcolor="#ffffff" height="0">
<p align="left"><font face="Verdana, Arial, Helvetica, sans-serif"
size="1"><b><img height="188" src="newsoffice_files/iris.jpg"
width="160" /><br />
Apr. 21</b><b> |</b> Photo of a spring lily from Morrill
Greenhouse</font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>
<font size="2"><br />
Trends & Ideas:</font><br />
<br />
</b>» <a
href="http://www.umass.edu/newsoffice/archive/2000/041200research.html">
Researchers Build Something from (Almost) Nothing</a></font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
» <a
href="http://www.umass.edu/newsoffice/archive/2000/041200williams.html">
Student Wins Prestigious Goldwater Scholarship</a></font></p>
<p><font face="Verdana, Arial, Helvetica, sans-serif" size="1">
» <a
href="http://www.umass.edu/newsoffice/archive/2000/041100suspend.html">
Chancellor Orders Security Cameras</a></font></p>
</td>
<td valign="top" width="123" bgcolor="#660000" height="0">
<div align="right">
<p align="left"><a href="http://www.umass.edu/newsoffice/archive/">
<img height="37" alt="Archives" src="newsoffice_files/btn_mir.gif"
width="119" border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/engines/"><img height="38"
alt="Search Engines" src="newsoffice_files/btn_engine.gif"
width="119" border="0" /></a><a
href="http://www.umass.edu/newsoffice/audio/"><img height="35"
alt="Web Audio" src="newsoffice_files/btn_audio.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/experts/"><img height="37"
alt="Experts Online" src="newsoffice_files/btn_exp.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/prkit/"><img height="25"
alt="Press Kits" src="newsoffice_files/btn_photo.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/hfiles/faq.html"><img
height="26" alt="Frequently Asked Question"
src="newsoffice_files/btn_faq.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/update/"><img height="35"
alt="UMass Update" src="newsoffice_files/btn_updt.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/pubs/"><img height="37"
alt="UMass Periodicals" src="newsoffice_files/btn_pubs.gif"
width="119" border="0" /></a><br />
<a href="http://www.fivecolleges.edu/"><img height="35"
alt="Five College News" src="newsoffice_files/btn_5col.gif"
width="119" border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/hfiles/staff.html"><img
height="25" alt="Ask an Editor"
src="newsoffice_files/btn_staff.gif" width="119"
border="0" /></a><br />
<a href="http://www.umass.edu/newsoffice/hfiles/feedback.html"><img
height="26" alt="Feedback" src="newsoffice_files/btn_feedback.gif"
width="119" border="0" /></a></p>
</div>
</td>
</tr>
<tr align="left" bgcolor="#ffffff">
<td valign="top" width="165" bgcolor="#cccc99" height="0">
<table cellspacing="6" cellpadding="0" width="100%" border="0">
<tbody>
<tr>
<td><a href="http://www.umass.edu/newsoffice/hfiles/foia.html">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">Guide
to the FOIA & Mass. Public Document Laws</font></a></td>
</tr>
<tr>
<td><a href="http://www.umass.edu/newsoffice/hfiles/tools.html">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">
Media/Reference Links</font></a></td>
</tr>
<tr>
<td><a href="http://www.umass.edu/newsoffice/hometn/index.html">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">
Hometown News</font></a></td>
</tr>
<tr>
<td><a href="http://www.umass.edu/newsoffice/newsline/1299.html">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">News
Office News<i>Line</i></font></a></td>
</tr>
</tbody>
</table>
</td>
<td valign="top" width="123" bgcolor="#ffcc66" height="0">
<div align="left">
<p align="center"><a href="http://www.campaign.umass.edu/"><img
height="39" alt="News from Campaign UMass"
src="newsoffice_files/campaign_btn.gif" width="123"
border="0" /></a><font face="Verdana, Arial, Helvetica, sans-serif"
size="1"><br />
<br />
</font><a
href="http://www.umass.edu/newsoffice/archive/2000/041400campaign.html">
<font face="Verdana, Arial, Helvetica, sans-serif" size="2"><font
size="1">Campaign Tops<br />
$100 Million Mark</font></font></a></p>
</div>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="4">
<div align="center"><img height="2" alt='""'
src="newsoffice_files/3pt.gif" width="600" border="0" /></div>
</td>
</tr>
<tr align="left">
<td valign="top" bgcolor="#ffffff" colspan="4" height="0">
<p><img height="63" alt="UMass Logo"
src="newsoffice_files/sm_logo.gif" width="72" align="left"
border="0" /><font size="2"><br />
This is an <a href="http://www.umass.edu/umhome/official.html">
Official Publication</a> of the University of Massachusetts Amherst
Campus.</font></p>
<p><font size="2">Copyright © 1997-2000. <a
href="http://www.umass.edu/newsoffice/hfiles/about.html">About this
site</a> | <a
href="http://www.umass.edu/newsoffice/hfiles/usage.html">Usage
Agreement</a> | <a href="http://www.umass.edu/umhome/index.html">
UMass Home Page</a></font></p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</body>
</html>
HTML-Kit
If handling the files one at a time is still too much for you, consider downloading a program from
Chami.com called HTML-Kit. This program, while not a WYSIWYG tool, offers Web developers
complete control over their HTML documents. HTML-Kit's creators also were smart enough to integrate
HTML Tidy as a push-button function. This enables you to load up your documents and, using a menu
option, convert your HTML to XHTML. You can download the program at
http://www.chami.com/html-kit/.
Java Tidy
Software developer Andy Quick (http://www3.sympatico.ca/ac.quick/) migrat-ed HTML Tidy
into a JavaBean to allow for more versatility and to make it easier to add as a component to any
commercial or in-house development package. You can download a copy at
http://www3.sympatico.ca/ac.quick/jtidy.html.
BBTidy
Web developers using the Macintosh platform will appreciate BBTidy
(http://www.geocities.com/SiliconValley/1057/tidy.html), a plug-in to the ever-popular
BBEdit Web editing environment that does much the same that the HTML Tidy feature in HTML-Kit
does.
Batch conversion
Unfortunately, no program can spider through a site and auto-convert it from HTML to XHTML.
However, using HTML Tidy, you can do it directory by directory. Providing you use the -modify or -m
flag to make the HTML-to-XHTML conversion take place within the source document, you can use
wildcards with Tidy. To convert a whole directory of documents, use the following line:
tidy -asxml –clean –modify *.html
This line converts every .html document in the directory to XHTML.
Document Validation
Whether you perform the conversion process by hand or use a program, nothing is infallible. HTML Tidy
has not been tested fully to see if it produces 100 percent valid and well-formed XHTML in each and
every instance – and in hand-coding, there's always one or two things someone overlooks. That's why it
is very important to use a validation tool to check your documents and be absolutely sure.
The best Web-based solution for XHTML validation is the W3C Validation Service
(http://validator.w3.org). This is a great way to see what you're missing in your conversion
process. Just make sure you have one of the three XHTML DOCTYPE declarations or it will validate your
document as HTML.
|