XSLT - 客户端
如果您的浏览器支持 XSLT,那么在浏览器中它可被用来将文档转换为 XHTML。
JavaScript 解决方案
在前面的章节,我们已向您讲解如何使用 XSLT 将某个 XML 文档转换为 XHTML。我们是通过以下途径完成这个工作的:向 XML 文件添加 XSL 样式表,并通过浏览器完成转换。
即使这种方法的效果很好,在 XML 文件中包含样式表引用也不总是令人满意的(例如,在无法识别XSLT的浏览器这种方法就无法奏效)。
更通用的方法是使用 JavaScript 来完成转换。
通过使用 JavaScript,我们可以:
- 进行浏览器确认测试
- 根据浏览器和使用者的需求来使用不同的样式表
这就是 XSLT 的魅力所在!XSLT 的设计目的之一就是使一种格式到另一种格式的转换成为可能,同时支持不同类型的浏览器以及不同的用户需求。
浏览器端的 XSLT 转换一定会成为未来浏览器所执行的主要任务之一,同时我们也会看到其在特定的浏览器市场的增长(盲文、网络打印机,听觉设备,等等)。
XML 文件和 XSL 文件
请看这个在前面的章节已展示过的 XML 文档:
<?xml version="1.0" encoding="ISO-8859-1"?>
<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="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th align="left">Title</th>
<th 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>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
查看此 XSL 文件。
请注意,这个 XML 文件没有包含对 XSL 文件的引用。
重要事项:上面这句话意味着,XML 文件可使用多个不同的 XSL 样式表来进行转换。
在浏览器中把 XML 转换为 XHTML
这是用于在客户端把 XML 文件转换为 XHTML 的源代码:
<html>
<body>
<script type="text/javascript">
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("cdcatalog.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("cdcatalog.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>
</body>
</html>
提示:假如您不了解如何编写 JavaScript,请学习我们的《JavaScript 教程》。
第一段代码创建了微软的 XML 解析器的一个实例,然后把 XML 文件载入了内存。第二段代码创建了解析器的另一个实例,然后把这个 XSL
文件载入了内存。最后一行代码使用 XSL 文档转换了 XML 文档,并在浏览器中把结果作为 XHTML 显示出来。任务完成!
请看它在 IE 中如何工作。
以下是我的测试文档
books.xml
books.xsl
display.html
books.xml如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="books.xsl"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
books.xsl如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>This is my books</h2>
<table border="1">
<tr>
<th>book title</th>
<th>book author</th>
</tr>
<xsl:for-each select="bookstore/book">
<tr>
<td>
<xsl:value-of select="title"/></td>
<td><xsl:value-of select="author"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
display.html如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="JavaScript">
<!--
// Load XML
var xml = new ActiveXObject("Microsoft.XMLDOM")
xml.async = false
xml.load("books.xml")
// Load XSL
var xsl = new ActiveXObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load("books.xsl")
// Transform
document.write(xml.transformNode(xsl))
//-->
</script>
<title> New Document </title>
<meta name="Generator" content="EditPlus">
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
</body>
</html>
分享到:
相关推荐
该文档用xml和xlst来生成试卷,实现试卷的设计和生成,大家可以下下来看看~
Excel 文件格式类型:XLS、XLSX、XLSB、XLSM、XLST Excel 文件格式类型是 Microsoft Office Excel 的文件扩展名,它们之间有着不同的区别和特点。在本文中,我们将详细介绍 XLS、XLSX、XLSB、XLSM 和 XLST 等五种...
2. 加载XML源文件和XSLT样式表: - 使用`java.io.File`或者`java.nio.file.Paths`读取XML源文件和XSLT样式表文件。 - 创建`javax.xml.transform.Source`对象,分别表示XML源和XSLT样式表。 3. 创建转换器: - ...
vb中读写XML文件实例Dim XMLDoc As DOMDocument Dim root As IXMLDOMNode Dim xlst As IXMLDOMNodeList, xlst1 As IXMLDOMNodeList Dim xn As IXMLDOMNode ... .SubItems(2) = xlst1.Item(2).Text End With Next
XLST(eXtensible Stylesheet Language Transformations)是一种用于转换XML文档的语言,它允许我们根据XSL样式表对XML数据进行格式化、重组或者转换。在本应用中,我们将探讨如何利用XLST来创建一个简单的参考说明...
在处理这种需求时,有两种主要方法:一是使用Microsoft.Office.Interop.Word组件,二是通过XSLT转换XML数据。本篇文章将详细探讨如何使用XSLT将XML数据转化为Word文档。 首先,我们了解XSLT(Extensible Stylesheet...
2. **XLSTransformer类**:在Java中,`javax.xml.transform.Transformer`类是处理XSLT转换的核心,它负责应用XSL样式表到XML源文档上,生成转换后的结果。`TransformerFactory`用来创建`Transformer`实例,`Source`...
XML(可扩展标记语言)和XSLT(可扩展样式表语言转换)是Web开发中的核心技术,用于数据存储和格式化。XML是一种标记语言,它允许数据以结构化的方式进行组织,而XSLT则是一种专门用于转换XML文档的语言,可以将XML...
XML(可扩展标记语言,eXtensible Markup Language)是一种用于标记数据的语言,它被设计用来传输和存储数据,而非显示数据。XML的结构清晰、独立于软件和硬件,因此在不同系统间交换数据时非常实用。XML文档由元素...
在处理“XLST插入图片有问题”这一主题时,我们首先要明确XSLT(eXtensible Stylesheet Language Transformations)的用途。XSLT是一种强大的语言,用于转换XML(eXtensible Markup Language)文档。它允许我们将XML...
2. **模板(Templates)**:模板是XSLT中的核心部分,定义了如何处理匹配到的XML元素。`<xsl:template>`元素定义了一个模板,`match`属性用来指定要匹配的XML模式。 3. **模式(Patterns)**:模式是XPath表达式,...
oracle 的序列创建,我因为把数据库从一台机到另一台机老报没有序列。这个是建序列代码。
XLST信号生成器的核心功能是读取Excel文件(如`TestCases.xls`)中的数据,并将其转化为Simulink模型中的输入信号。这使得用户可以利用Excel的便捷性和强大的数据分析能力来定义和调整输入信号的特性,如幅度、频率...
去做与XLST转换兼容的XML文件。 Sqlite数据库。 PDF生成的一些方法:XLST或LaTeX。XML挑战支持多种语言。 从RTL(基于阿拉伯语的脚本)中分离LTR文本(基于拉丁语的语言)执照文件reference.pdf是其各自所有者的版权...
XSLT,全称为“可扩展样式表语言转换”(eXtensible Stylesheet Language Transformations),是一种专门用于转换XML文档格式的语言。W3School的XSLT教程为学习者提供了一个全面且易于理解的平台,尤其适合XML和Web...
总结来说,XSLT作为XML数据转换的语言,其强大之处在于它能够对XML文档进行深度处理,不仅仅是简单的样式调整,而是真正实现了数据的结构性转换。随着XML在互联网和企业信息系统中的广泛应用,XSLT成为了处理XML数据...
XSLT,全称为Extensible Stylesheet Language Transformations,是一种强大的样式表语言,用于转换XML(可扩展标记语言)文档,实现数据的呈现和重排。 在本书中,首先会介绍XSLT的基本概念,包括它的起源、目标和...
通过以上介绍,我们可以看出XSLT的强大之处在于能够灵活地处理和转换XML数据。无论是简单的选择还是复杂的文档重构,XSLT都能提供一套完整的解决方案。希望这些基础知识能帮助您更好地理解和应用XSLT。
2. **变量和模式**:在XSLT中,可以声明变量来存储中间结果,也可以使用模式(patterns)来匹配XML文档的不同部分。 3. **数据转换**:XSLT提供了丰富的函数库,可以对XML数据进行各种操作,如字符串处理、数值计算...