在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
XSL 指扩展样式表语言(EXtensible Stylesheet Language)万维网联盟开始发展 XSL 的起因是由于对基于 XML 的样式表语言的需求。 XSLT 指 XSL 转换。XSLT 将 XML 文档转换为其他文档,比如 XHTML概念不多讲,这里附上W3C的网址 ,希望您一定要去看看! 老规矩,先写出个能运行的程序再说。 既然XSLT是将XML文档转换为其它文档,那么我们就先建立一个XML文档吧。(名为:HelloHtml.xml) <?xml version="1.0" encoding="utf-8" ?> 同样,还要再建立一个xslt文件,这里把它们放到同一个目录下。(名为:HelloHtml.xslt) <?xml version="1.0" encoding="utf-8"?> 想来xml文件应该不用讲解了,那就看看xslt文件吧: 首先,它也是一个xml文档,stylesheet节点标记了此xsl样式文件的版本,xmlns(xml命名空间)等信息。output标记中method声明以什么形式转换文档,当然,它不仅仅能做html转换,也可以做其它诸如xml,text,pdf等转换。 ident声明了是否要对输出文档作缩进。 template标记声明这是一个转换模板,match标记声明了它将对哪个节点下的元素进行匹配。 value-of标记是个取值指令,它将会把xml文档中元素名为select中指定的元素的值取出来作为转换后的数据。 由此分析,经转换后输出的html内容应该是: <h1>Hello Angel</h1> 由于xslt为WEB标准,并且被大多数主流浏览器所支持,所以仅仅需要将xml文件与xslt文件都发送到客户端,浏览器就会自动将其转换为XHTML文档。 接下来就是要给xml档引入xslt样式表了,这样xslt才能对xml文档进行转换,在xml文件的版本声明后加上这样一句: <?xml-stylesheet type="text/xsl" href="/HelloHtml.xslt"?> 此时再浏览xml文件,就会看到浏览器不是仅仅显示一个XML的文档树了(有些浏览器显示纯xml文档是纯文本格式的),而应该是一个又大又粗的一号标题文本:
<h1>Hello Angel</h1> 而一个标准的xhtml文档至少应该是下面:(当然,这里是xhtml1.1版本的,DOCTYPE可能会有所不同) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 如何才能输出这样一个文档呢?当然,看了上面的例子后,你一定能把除了DOCTYPE之外的其它元素都完整地输出,但关键就是要输出DOCTYPE,因为如果一个html/xhtml文档如果没有一个正确的doctype,将可能会触发浏览器的怪异模式,这将有可能造成浏览器对内容的显示非常混乱,当然,即使是小小的差异,只要是不可预料的也确实是件令人头痛的事情! 其实output指令还有两个属性,一个是doctype-public,一个是doctype-system。正好对应html/xhtml DOCTYPE中的PUBLIC和后面的SYSTEM声明。 那么我们只用这样写,便可以输出符合标准的html/xhtml文档了: <?xml version="1.0" encoding="utf-8"?> 看似一切都搞定了,也没有多少东西,但事实上并不是这样的。因为可能我们想要把产品列表放到一个文档中,评论信息又放入一个文档中,然后还要把它们合并成为一个文档。大多数情况下我们是没有一个现成的xml文档的。那些东西也是要动态生成的。我们还可能需要复杂的选择运算等等。。。 还有就是,本来网站上使用了点ajax对SEO就有点不太友好了,再加入xml/xslt这东东,网站的SEO怎么顾全呢? 下接着会看看多文档合并的问题,接着是解决SEO问题。。。总之,会把如何使用xslt制作符合标准的网站告诉您。而且还要提前告诉您下,虽然接下来要在服务器端使用xslt,但我们已经可以摆脱WebForm的page以提升性能,再加上所有跟数据、样式、HTML相关的内容都是纯文本的,并没有丝毫编译到DLL中去,也将大大方便将来对网站的维护。 |
请发表评论