除了使用XML文件直接套用XSL的方式以外,其實還有另外一種方式可以讓展現更具彈性及能力,那就是結合XML DOM物件(Document Object Model),動態套用XML文件達成相同的MenuBar功能,這種方式將同時結合XML、XSL、DOM以及HTML頁面,雖然看起來好像很複雜,但是看完修正後的結果,讀者應該會覺得更清爽了。 |
首先將XSL文件轉換的範圍所小至只轉換< Body >標籤內的資料,差不多是前面第四步驟完成後的結果,如下: |
< ?xml version="1.0" encoding="big5"? > < xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" > < xsl:template match="/" > < DIV class="title" >< b >恆逸課程查詢< /b >< /DIV > < xsl:for-each select="//Menu" > < DIV class="parent" onmouseover="VBScript:me.style.color='red'" onmouseout="VBScript:me.style.color='black'" > < IMG src="images/blue.gif" style="CURSOR: default" / > < xsl:value-of select="@MenuTitle" / >< br/ > < DIV class="child" style="DISPLAY: none" > < xsl:for-each select="MenuItem" > < A >< xsl:attribute name="HREF" > < xsl:value-of select="@url" / > < /xsl:attribute > < xsl:value-of / > < /A >< br / > < /xsl:for-each > < /DIV > < /DIV > < /xsl:for-each > < /xsl:template > < /xsl:stylesheet > |
|
這段XSL語法與MenuBar.xsl差別在只轉換MenuBar.htm的灰底部分的資料,接下來要配合將原本的MenuBar.htm稍加修改,如下: |
< HTML > < HEAD > < META name="VI60_DefaultClientScript" Content="VBScript" > < TITLE >MenuBar< /TITLE > < SCRIPT ID=clientEventHandlersVBS LANGUAGE=vbscript > Sub document_onclick if window.event.srcElement.className="parent" then if window.event.srcElement.children(2).style.display="none" then window.event.srcElement.children(0).src="images/red.gif" window.event.srcElement.children(2).style.display="block" else window.event.srcElement.children(0).src="images/blue.gif" window.event.srcElement.children(2).style.display="none" end if end if End Sub
Sub window_onload '取得XML檔案資料 set doc=createobject("microsoft.xmldom") doc.async=false doc.load "MenuBar.xml" '取得XSL檔案資料 set ss=createobject("microsoft.xmldom") ss.async=false ss.load "MenuBar2.xsl" '使用DOM物件動態套用XSL轉換XML文件 menubar.innerHTML= doc.transformnode(ss) End Sub |
< /SCRIPT > < style > .parent { cursor:hand;FONT-WEIGHT: bold;height:20px } .child { height:30px } .title { color:maroon;font-size:14px;height:20px } a { TEXT-DECORATION: none; height:14px } < /style > < /HEAD > < BODY rightmargin="0" style="FONT-FAMILY: Verdana; FONT-SIZE: 12px" >
< div id="menubar" >< /div > |
< /BODY > < /HTML > |
|
上列程式經過了兩部分修改,第一部份是將原本MenuBar資料的部分修改至只剩下以下標籤:
< div id="menubar" >< /div > |
然後加入程式的部分,當文件載入(Window_OnLoad)的時候先取得XML文件及XSL文件的資料後,使用XML DOM物件動態套用產生MenuBar資料得結果,然後將產生的結果插入上列的標籤當中,如此一來也能夠得到相同的結果,讀者可以自行試試看。 |
相关推荐
XSL-FO 简介 XSL-FO 的简介。包括其概念和作用。 XSL-FO 文档 本章将解 XSL-FO 文档的结构。 XSL-FO 区域 本章讲解 XSL-FO 的区域模型(area model)。 XSL-FO 输出 本章讲解 XSL-FO 文档的输出元素(Output ...
XSL-Stylesheets Source: DocBook-XSL-1.79.1
由于MDC-XSL-XML转换源代码设计得具有适应性,这意味着它可以相对容易地被集成到其他程序或系统中。这使得开发者可以在自己的应用程序中利用这个转换工具,而无需从头编写XML到HTML的转换逻辑。 7. **实际应用**:...
xml-xslt-xsl-fo-dotnet 使用XML,XSLT,XSL-FO和在.NET中生成PDF文档的。 XML数据示例,XSL样式表和生成的PDF位于文件夹中(XML和XSL由)。 产生结果result.pdf : 建立解决方案 将source.xml和stylesheet.xsl...
在这个案例中,“docbook-style-xsl-1.75.2-6.el6.noarch.rpm”是DocBook样式XSL转换器的一个特定版本,适用于RPM支持的系统,如CentOS 6,而且是“noarch”的,意味着它不依赖特定的处理器架构,可以在任何兼容的...
2. **编写XSLT样式表**:接下来,你需要编写一个XSLT样式表,这个样式表定义了XML数据如何被转换成XSL-FO格式。XSLT模板会匹配XML文档中的元素,并生成相应的XSL-FO元素。 3. **应用XSLT转换**:使用XSLT处理器(如...
xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页 xml+xsl+css html网页
【XSL-FO】全称为可扩展样式表语言格式化对象,是一种基于XML的语言,用于描述XML数据如何在屏幕上、纸上或其他媒介上呈现的格式化规则。它由万维网联盟(W3C)制定,并在2001年10月15日成为推荐标准。XSL-FO常常与...
XSL-FO 用于格式化供输出的 XML 数据。 学习之前应当具备的基础知识 在您学习 XSL-FO 之前,应当对 XML 和 XML 命名空间有基本的了解。 什么是 XSL-FO? XSL-FO 是用于格式化 XML 数据的语言 XSL-FO 指可扩展样式...
这个"docbook-xsl-1.73.2.zip"压缩包包含的是DocBook XSL样式表的1.73.2版本,这是一个关键组件在将DocBook XML文档转换成各种输出格式的过程中。 首先,让我们深入理解DocBook XML。DocBook是一种结构化的标记语言...
XML(可扩展标记语言)和XSL(可扩展样式表语言)是Web开发中的核心技术,它们主要用于数据的结构化表示和格式化展示。XML是一种标记语言,它允许开发者定义自己的标签来描述数据,使得数据更加结构化,易于解析和...
XSL由三部分组成:XSLT(XSL Transformations)、XPath(XML Path Language)和XSL-FO(XSL Formatting Objects)。 XSLT是XSL的核心,用于定义转换规则,将XML文档转换成其他形式。它通过模板匹配和模式选择来决定...
### XSL-FO PDF:XML to XSL-FO Transformation详解 #### 概述 XSL-FO(Extensible Stylesheet Language Formatting Objects)是一种基于XML的标准,用于定义文档的布局和格式化规则,常用于生成高质量的PDF、打印...
**XSL-FO(XSL Formatting Objects)**是一种XML方言,根据W3C(World Wide Web Consortium)的规范,用于描述XML文档的呈现方式。它主要用于将结构化的XML数据转换成可打印或可视化的格式,如PDF、HTML、RTF等。XSL...
在本案例中,提供的"**xsl2xml.java**"文件可能是一个Java程序,它实现了将XML文件根据XSL样式表转换的功能。Java中处理XML和XSLT转换通常会用到如`javax.xml.transform`这样的API,其中`TransformerFactory`用于...
2. **XML与CSS(层叠样式表)** CSS用于描述XML文档的视觉表现,通过选择器匹配XML元素并应用样式。例如,我们可以为上述XML中的`book`元素定义样式: ```css book { font-family: Arial, sans-serif; color: #...
本篇文章将深入探讨XSL-FO的高级技术,帮助读者掌握如何利用这一强大的工具进行复杂的文档布局和设计。 一、XSL-FO基础 在理解高级技术之前,我们先回顾一下XSL-FO的基础概念。XSL-FO由一系列格式化对象组成,如...
总结来说,"XSL.rar_ XML-JSP_.CHM_XML chm_xml xsl_xsl"这个压缩包提供了一个深入学习XSL、XML和JSP交互的资源,特别适合XML设计者和Web开发者。通过阅读提供的手册和参考材料,开发者可以提升在处理XML数据和创建...
XSL(Extensible Stylesheet Language)是一种用于转换XML文档格式的语言,而XSLT(XSL Transformations)是XSL的一部分,用于将XML数据转换成其他形式,如HTML、PDF或文本。Jakarta Taglibs XSL 1.0.1库则为JSP...