HTML和XSLT(1) HTML和XSLT原著:Bob DUCharme 2000年8月30日翻译:阿捷 2001年8月6日译者注:本文介绍的是HTML格式和XML格式的互相转换,重点讲了两个问题:1.如何将老的HTML文档转换成XML系统可使用的格式;2.如何通过XSLT将XML文档输出为老的HTML格式。正文相当一段时间里,电子出版的主要形式是HTML的网页,这种情况看来还要持续几年。如果使用XSLT作为系统开发工具,你可以在一个需要读和写HTML的应用中正常工作而不会出现什么困难。如果你的应用程序读和写的HTML的格式类似XHTML---一种W3C推荐的,是在HTML 4.0基础上依据XML规范重写的标识语言,那你就更不需要担心任何事情了,因为XHTML是非常标准的XML,就象其他能被XSLT读写的XML文档一样。但如果你应用程序依然只能读老的HTML(4.0或以前版本),或者输出的是适合老版本的浏览器的HTML,那么在应用中会有一些问题,我们介绍一些简单的技术来解决这些问题。一.输入HTMLXSLT解释器(processor)只能处理"良好格式"的XML文档,尽管HTML可以写得"格式良好",但现在大部分的HTML都不符合规范。例如:任何浏览器都可以理解和显示下面的HTML文档,但是要成为"良好格式"的XML文档还存在很多问题:< html>< body>< h1>My Heading< /H1>< p>Here is the first paragraph.< P>Here is the second.< br>Second line of the second paragraph.< IMG SRC=somepic.jpg>< /BODY>1.html标识只有开始标识而缺少结束标识;2.body和h1标识开始标识和结束标识的大小写不一致;3.img标识的链接属性没有加引号,缺少结束标识;4.p和br标识不匹配,同样缺少结束标识。如果想让这样的HTML代码被XML应用程序正常理解和显示,就必须用一种工具软件来检测HTML并转换成为"良好格式"的HTML文档。W3C组织的Dave Raggett已经提供了这样的软件,而且幸运的是:他的"HTML Tidy"软件是可以在W3C网站上免费得到的。使用HTML Tidy,在命令行后加上 -asxml的参数,就可以自动为所有空元素加上一个"/"的结束标识。例如,上面的HTML代码会被处理为下面这样的良好格式:< ?xml version="1.0"?>< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/strict.dtd">< html xmlns="http://www.w3.org/TR/xhtml1">< head>< title>< /title>< /head>< body>< h1>My Heading< /h1>< p>Here is the first paragraph.< /p>