当前位置:网站首页>XSLT – 服务器端概述
XSLT – 服务器端概述
2022-08-03 23:34:00 【nginx】
跨浏览器解决方案在前面的章节,我们讲解过如何在浏览器中使用 XSLT 来完成 XML 到 XHTML 的转化。我们创建了一段使用 XML 解析器来进行转换的 javaScript。JavaScript 解决方案无法工作于没有 XML 解析器的浏览器。
为了让 XML 数据适用于任何类型的浏览器,我们必须在服务器上对 XML 文档进行转换,然后将其作为 XHMTL 发送回浏览器。
这是 XSLT 的另一个优点。XSLT 的设计目标之一是使数据在服务器上从一种格式转换到另一种格式成为可能,并向所有类型的浏览器返回可读的数据。
XML 文件和 XSLT 文件请看这个在前面的章节已展示过的 XML 文档:
以及附随的 XSL 样式表:
<?xml version="1.0" encoding="UTF-8"?><catalog><cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>.
.</catalog>
请注意,这个 XML 文件没有包含对 XSL 文件的引用。
<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0"xmlns:xsl="<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">Artist</th>
</tr>
<xsl:for-each select="catalog/cd">
<tr>
<td><xsl:value-of select="title" /></td>
<td><xsl:value-of select="artist" /></td>
</tr>
</xsl:for-each>
</table></xsl:template></xsl:stylesheet>
重要事项:上面这句话意味着,XML 文件可使用多个不同的 XSL 样式表来进行转换。
在服务器把 XML 转换为 XHTML这是用于在服务器上把 XML 文件转换为 XHTML 的源代码:
使用 PHP 代码转换
使用 ASP 代码转换
<?php// 载入 XML 文件$xml = new DOMDocument;$xml->load('cdcatalog.xml');// 载入 XSL 文件$xsl = new DOMDocument;$xsl->load('cdcatalog.xsl');// 设置转换$proc = new XSLTProcessor;// 添加 xsl 规则$proc->importStyleSheet($xsl);echo $proc->transformToXML($xml);?>
第一段代码创建了微软的 XML 解析器(XMLDOM)的一个实例,并把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,并把这个 XSL 文件载入了内存。最后一行代码使用 XSL 文档转换了 XML 文档,并把结果作为 XHTML 发送到您的浏览器。太好了!
<%'载入 XML 文件set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'载入 XSL 文件set xsl = Server.CreateObject("Microsoft.XMLDOM")xsl.async = falsexsl.load(Server.MapPath("cdcatalog.xsl"))'转换文件
Response.Write(xml.transformNode(xsl))%>
它是如何工作的。
原文来自:
边栏推荐
- 【OpenCV图像处理】 图像拼接技术
- 用两个栈模拟队列
- Websocket multi-threaded sending message error TEXT_PARTIAL_WRITING--Use case of spin lock replacing synchronized exclusive lock
- ML's yellowbrick: A case of interpretability (threshold map) for LoR logistic regression model using yellowbrick based on whether Titanic was rescued or not based on the two-class prediction dataset
- 响应式织梦模板除尘器类网站
- Use tf.image.resize() and tf.image.resize_with_pad() to resize images
- 学习笔记 | uiautomation(如何)实现自动化
- 3D 语义分割——2DPASS
- ros mavros stereo读取rosbag并记录IMU和图片到文件夹
- 用队列模拟实现栈
猜你喜欢
随机推荐
What is memoization and what is it good for?
Walk the Maze BFS
rsync basic usage
(PC+WAP)织梦模板螺钉手柄类网站
1067 Sort with Swap(0, i)
Software testing is seriously involution, how to improve your competitiveness?
JS get parameter value of URL hyperlink
Creo 9.0二维草图的诊断:加亮开放端点
A simple understanding of TCP, learn how to shake hands, wave hands and various states
Testng listener
Internship: Upload method for writing excel sheet (import)
V8中的快慢数组(附源码、图文更易理解)
V8中的快慢数组(附源码、图文更易理解)
YOLOv7改进之二十二:涨点神器——引入递归门控卷积(gnConv)
代码随想录笔记_动态规划_416分割等和子集
用队列模拟实现栈
With the rise of concepts such as metaverse and web3.0, many digital forms such as digital people and digital scenes have begun to appear.
CAS:178744-28-0,mPEG-DSPE,DSPE-mPEG,甲氧基-聚乙二醇-磷脂酰乙醇胺供应
ML之yellowbrick:基于titanic泰坦尼克是否获救二分类预测数据集利用yellowbrick对LoR逻辑回归模型实现可解释性(阈值图)案例
牛客2022 暑期多校3 H Hacker(SAM + 线段树查询区间内部最大子段和)