`

XML::XML XLS之XLST二

    博客分类:
  • XML
阅读更多

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生成html试卷)

    该文档用xml和xlst来生成试卷,实现试卷的设计和生成,大家可以下下来看看~

    EXCEL文件格式类型:XLS、XLSX、XLSB、XLSM、XLST.docx

    Excel 文件格式类型:XLS、XLSX、XLSB、XLSM、XLST Excel 文件格式类型是 Microsoft Office Excel 的文件扩展名,它们之间有着不同的区别和特点。在本文中,我们将详细介绍 XLS、XLSX、XLSB、XLSM 和 XLST 等五种...

    java中使用xslt转换xml成为另一个xml

    2. 加载XML源文件和XSLT样式表: - 使用`java.io.File`或者`java.nio.file.Paths`读取XML源文件和XSLT样式表文件。 - 创建`javax.xml.transform.Source`对象,分别表示XML源和XSLT样式表。 3. 创建转换器: - ...

    vb6XML读写

    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 小应用

    XLST(eXtensible Stylesheet Language Transformations)是一种用于转换XML文档的语言,它允许我们根据XSL样式表对XML数据进行格式化、重组或者转换。在本应用中,我们将探讨如何利用XLST来创建一个简单的参考说明...

    使用xslt转化xml数据形成word文档导出

    在处理这种需求时,有两种主要方法:一是使用Microsoft.Office.Interop.Word组件,二是通过XSLT转换XML数据。本篇文章将详细探讨如何使用XSLT将XML数据转化为Word文档。 首先,我们了解XSLT(Extensible Stylesheet...

    XLSTransformer jar

    2. **XLSTransformer类**:在Java中,`javax.xml.transform.Transformer`类是处理XSLT转换的核心,它负责应用XSL样式表到XML源文档上,生成转换后的结果。`TransformerFactory`用来创建`Transformer`实例,`Source`...

    Xml+Xslt测试工具

    XML(可扩展标记语言)和XSLT(可扩展样式表语言转换)是Web开发中的核心技术,用于数据存储和格式化。XML是一种标记语言,它允许数据以结构化的方式进行组织,而XSLT则是一种专门用于转换XML文档的语言,可以将XML...

    XML和XSLT,及XHTML讲解

    XML(可扩展标记语言,eXtensible Markup Language)是一种用于标记数据的语言,它被设计用来传输和存储数据,而非显示数据。XML的结构清晰、独立于软件和硬件,因此在不同系统间交换数据时非常实用。XML文档由元素...

    XLST插入图片有问题

    在处理“XLST插入图片有问题”这一主题时,我们首先要明确XSLT(eXtensible Stylesheet Language Transformations)的用途。XSLT是一种强大的语言,用于转换XML(eXtensible Markup Language)文档。它允许我们将XML...

    xslt模板转换,xml数据和模板

    2. **模板(Templates)**:模板是XSLT中的核心部分,定义了如何处理匹配到的XML元素。`&lt;xsl:template&gt;`元素定义了一个模板,`match`属性用来指定要匹配的XML模式。 3. **模式(Patterns)**:模式是XPath表达式,...

    序列xlst.sql

    oracle 的序列创建,我因为把数据库从一台机到另一台机老报没有序列。这个是建序列代码。

    matlab开发-XLST信号生成器

    XLST信号生成器的核心功能是读取Excel文件(如`TestCases.xls`)中的数据,并将其转化为Simulink模型中的输入信号。这使得用户可以利用Excel的便捷性和强大的数据分析能力来定义和调整输入信号的特性,如幅度、频率...

    hisnulMuslimDB:XML,PDF和Sqlite格式的多语言Hisnul穆斯林数据库的存储库

    去做与XLST转换兼容的XML文件。 Sqlite数据库。 PDF生成的一些方法:XLST或LaTeX。XML挑战支持多种语言。 从RTL(基于阿拉伯语的脚本)中分离LTR文本(基于拉丁语的语言)执照文件reference.pdf是其各自所有者的版权...

    W3School的XSLT教程

    XSLT,全称为“可扩展样式表语言转换”(eXtensible Stylesheet Language Transformations),是一种专门用于转换XML文档格式的语言。W3School的XSLT教程为学习者提供了一个全面且易于理解的平台,尤其适合XML和Web...

    XSLT中文入门 XSLT轻松入门

    总结来说,XSLT作为XML数据转换的语言,其强大之处在于它能够对XML文档进行深度处理,不仅仅是简单的样式调整,而是真正实现了数据的结构性转换。随着XML在互联网和企业信息系统中的广泛应用,XSLT成为了处理XML数据...

    XSLT从入门到精通(PDG).rar

    XSLT,全称为Extensible Stylesheet Language Transformations,是一种强大的样式表语言,用于转换XML(可扩展标记语言)文档,实现数据的呈现和重排。 在本书中,首先会介绍XSLT的基本概念,包括它的起源、目标和...

    XSLT 简单语法说明

    通过以上介绍,我们可以看出XSLT的强大之处在于能够灵活地处理和转换XML数据。无论是简单的选择还是复杂的文档重构,XSLT都能提供一套完整的解决方案。希望这些基础知识能帮助您更好地理解和应用XSLT。

    xslt转化HTML标签与数据结合

    2. **变量和模式**:在XSLT中,可以声明变量来存储中间结果,也可以使用模式(patterns)来匹配XML文档的不同部分。 3. **数据转换**:XSLT提供了丰富的函数库,可以对XML数据进行各种操作,如字符串处理、数值计算...

Global site tag (gtag.js) - Google Analytics