- 浏览: 73088 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
jinbo0120:
受教了,我还一直存在疑问呢,原来是1.5开始使用的...看来我 ...
5.0for循环 -
persistC:
1、到底在哪用cascade=&q ...
hibernate.hbm.xml总结 -
duanyong:
看到xml就烦。不知道为什么。嘿嘿。
hibernate.hbm.xml总结
<xsl:result-document>指令用于输出内容到文件。
XML源文档:
<?xml version="1.0" encoding="GB2312"?>
<root>
<item f1="浙江" f2="绍兴" f3="aaa"/>
<item f1="江苏" f2="苏州" f3="bbb"/>
<item f1="浙江" f2="杭州" f3="ccc"/>
<item f1="山东" f2="济南" f3="ddd"/>
<item f1="山东" f2="青岛" f3="aaa"/>
<item f1="江苏" f2="南京" f3="fff"/>
<item f1="山东" f2="青岛" f3="ggg"/>
<item f1="江苏" f2="南京" f3="hhh"/>
<item f1="山东" f2="济南" f3="iii"/>
</root>
<root>
<item f1="浙江" f2="绍兴" f3="aaa"/>
<item f1="江苏" f2="苏州" f3="bbb"/>
<item f1="浙江" f2="杭州" f3="ccc"/>
<item f1="山东" f2="济南" f3="ddd"/>
<item f1="山东" f2="青岛" f3="aaa"/>
<item f1="江苏" f2="南京" f3="fff"/>
<item f1="山东" f2="青岛" f3="ggg"/>
<item f1="江苏" f2="南京" f3="hhh"/>
<item f1="山东" f2="济南" f3="iii"/>
</root>
XSLT文件:
<?xml version='1.0'?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="GB2312" name="output"/>
<xsl:template match="/">
<xsl:for-each-group select="root/item" group-by="@f1">
<xsl:sort select="@f1"/>
<xsl:variable name="filename" select="concat('province',position())"/>
<xsl:result-document href="{$filename}.html" format="output">
<xsl:value-of select="concat(@f1,'-')"/>
<xsl:for-each-group select="current-group()" group-by="@f2">
<xsl:sort select="@f2"/>
<xsl:value-of select="concat(' ',@f2,':')"/>
<xsl:for-each-group select="current-group()" group-by="@f3">
<xsl:sort select="@f3"/>
<xsl:value-of select="@f3"/>
<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="GB2312" name="output"/>
<xsl:template match="/">
<xsl:for-each-group select="root/item" group-by="@f1">
<xsl:sort select="@f1"/>
<xsl:variable name="filename" select="concat('province',position())"/>
<xsl:result-document href="{$filename}.html" format="output">
<xsl:value-of select="concat(@f1,'-')"/>
<xsl:for-each-group select="current-group()" group-by="@f2">
<xsl:sort select="@f2"/>
<xsl:value-of select="concat(' ',@f2,':')"/>
<xsl:for-each-group select="current-group()" group-by="@f3">
<xsl:sort select="@f3"/>
<xsl:value-of select="@f3"/>
<xsl:if test="position() != last()">,</xsl:if>
</xsl:for-each-group>
</xsl:for-each-group>
</xsl:result-document>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
这里有几个问题需要注意的:
1,当用stylus studio 6.3的sax8.4来解析上面的XSLT文件时,出现错误:java.lang.RuntimeException:The System identifier of the principal output file is unkown.
错误的原因是,处理器不能很好的来解释XSLT2.0,并不是XSLT文件的语法问题。如果使用Stylus studio 2007的saxon8.7.3来解析,一切正常。
2,<xsl:result-document>的href属性要指定路径,那么相对路径跟哪个有关。实际的输出文件路径是相对当前XSLT文件的路径。
3,format属性指定输出的格式,该格式是上面预定义的:
<xsl:output method="html" encoding="GB2312" name="output"/>
如果没有指定输出编码为:GB2312,那输出的文件内容可能是乱码。
4,href="{$filename}.html"中的变量filename必须用大括号括起来。因为href属性的值是字符串,如果直接写成了href="$filename.html",则输出文件名为$filename.html。
这跟<xsl:value-of select="$filename">一类指令中的select属性不同,select属性就是用来指定节点集合(在XPATH2.0中理解为序列)或变量的。用大括号反而会出错。
5,如果href指定的文件名中含有汉字,则生成文件的文件名无法正常显示。这个问题留待解决。
发表评论
-
XSLT2.0---正则表达式
2009-06-06 16:27 963其实,正则表达式是XPATH2.0定义的,暂且放在XSLT里说 ... -
XSLT2.0----<xsl:analyze-string>
2009-06-06 16:26 912<xsl:analyze-string>是XS ... -
XSLT2.0----<xsl:variable>和<xsl:sequence>
2009-06-06 16:25 2971我们知道,<xsl:variable>可以定义变量 ... -
XSLT2.0----XPATH2.0序列
2009-06-06 16:24 949严格说来XPATH2.0和XSLT2.0并无直接联系,但是XP ... -
XSLT2.0----字符映射
2009-06-06 16:23 677XSLT2.0提供了字符映射功能。 对于特殊字符或特殊字符, ... -
XSLT2.0---临时结果树
2009-06-06 16:23 1033<xsl:variable>可不是新东西了,它 ... -
XSLT2.0---分组
2009-06-06 16:20 1223看了些关于XSLT2.0的东西,先来总结一下分组吧。 &l ... -
xsl2.0正则
2009-06-05 11:46 1035<xsl:analyze-string>是XSLT ... -
XSLT 2.0 的新特性
2009-06-05 11:44 1543XSLT 2.0 的新特性 关键 ... -
XSLT Designer快速入门指南
2008-12-15 21:07 899目录 概述 配 ... -
XSLT document()函数在IE与Firefox中的区别
2008-12-15 21:07 942XSLT 中 document() 函数的作用是用来访问扩展X ... -
了解XSLT
2008-12-15 21:06 951什么是XSLT? XSLT的英文标准名称为eXtensibl ... -
XSL中count()的使用
2008-12-15 21:05 1056XSL中用count()来取得xml中某种节点的个数 list ... -
XSL学习心得-制作图像超链接
2008-12-15 21:04 797这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址 ... -
xslt的简单使用[xml-->html]
2008-12-15 21:03 1015XSLT命令[xml格式转换] 1.循环 <xsl:f ... -
XSL中利用xsl:for-each时给每一项添加序号
2008-12-15 21:02 1732经常用for-each来循环读取XML中的某个节点集,但常常需 ... -
第四章:XPath的语法
2008-12-15 21:00 9774.XPath的语法 我们在前 ... -
第三章:XSLT的元素语法
2008-12-15 20:59 884通过前面两章的介绍,我们已经对XSLT的基本概念和它的转换过程 ... -
第二章:XSLT的实例
2008-12-15 20:59 10062. XSLT的实例 2.1 XSLT如何转换XML 2.2 ... -
第一章:XSLT的概念
2008-12-15 20:58 7941.XSLT的概念 1.1 什么是XSLT 1.2 为什么要 ...
相关推荐
标题中的"Gestalt XSLT 2.0 processor"是一个基于Eiffel编程语言开发的开源项目,专门用于处理XSLT 2.0规范。XSLT(可扩展样式表语言转换)是一种用于XML文档转换的语言,它允许开发者将XML数据转换成其他格式,如...
在压缩包中的“xslt实例”文件中,你可以期待看到以下内容: 1. **基础转换示例**:这些实例可能会演示如何将XML数据转换成HTML表格,或者将XML结构转换成更简洁的文本输出。 2. **条件逻辑应用**:可能包含使用`...
XSLT有多个版本,最常用的是XSLT 1.0和XSLT 2.0。XSLT 2.0引入了许多新功能,如函数库、类型系统和更复杂的遍历机制,增强了其在代码生成中的应用能力。 2.3 **EXSLT** EXSLT是扩展XSLT的一个开源项目,提供了许多...
根据提供的文件信息,我们可以从中提炼出与XML相关的多个知识点,主要围绕XML的基础概念、发展历程以及XSLT 2.0的应用展开。 ### XML基础知识 **XML(Extensible Markup Language)**是一种标记语言,用于定义数据...
在这个名为“XsltExample”的压缩包中,很显然包含了一个或多个示例,展示了如何使用XSLT进行实际操作。 首先,理解XSLT的基本结构至关重要。XSLT是基于XML的,因此它的语法遵循XML的规则。XSLT文件通常有三个主要...
解决方案可能是使用EXSLT的广泛接受的模块,或者期待XSLT 2.0及更高版本,其中包含了更多的标准函数和元素,减少了对扩展的依赖。 ### 5. 示例 在示例部分,我们看到了如何使用`<saxon:while>`和`<saxon:assign>`...
9. **内联脚本**:XSLT 1.0支持使用`<xsl:script>`元素内联JavaScript或其他脚本,但XSLT 2.0及以上版本推荐使用XPath 2.0或更高级别的内置函数。 10. **XSLT处理器**:实际执行XSLT转换的是XSLT处理器,如Saxon、...
值得注意的是,XML::XSLT模块可能不支持最新的XSLT 2.0和3.0规范,因此对于需要更高级特性的项目,可能需要寻找其他解决方案,如XML::LibXSLT(基于libxslt库)。 总之,XML::XSLT为Perl开发者提供了一种强大的工具...
- XSL-FO(XSL Formatting Objects):用于生成打印输出或PDF的格式化语言。 - DOM(Document Object Model):XML文档的树形表示,用于程序对XML数据的操作。 “使用说明.txt”文件可能会提供关于如何打开和阅读...
Xalan-Java可以通过定制的XSLT样式表实现这一功能,通过定义规则来决定何时创建新的输出文件。 Xalan-Java的核心组件包括: 1. XSLT编译器:将XSL样式表转换为可执行的样式表对象。 2. XSLT处理器:执行已编译的...
XSLT(Extensible Stylesheet Language Transformations)是一种XML方言,用于转换XML文档结构,以呈现不同的格式或输出到其他媒介。它是W3C标准的一部分,主要用于数据转换和表示。 XSLT是基于模板的,允许开发者...
4. **兼容性**:Xalan-J遵循XSLT 1.0和XSLT 2.0标准,确保与大多数XML和XSLT规范兼容。 5. **可扩展性**:支持用户自定义的函数和扩展,可以创建自己的模板和函数库,以满足特定需求。 **使用Xalan-J 2.7.2** 在...
10. **源码分析**:与书本配套的源码文件(XSLT Prog Ref)提供了实际的XSLT样式表,供读者研究和实践,以加深对XSLT的理解。 通过对这本书的学习和实践,IT专业人士能够掌握XSLT的精髓,从而有效地处理XML数据,...
例如,XSLT 1.0不支持直接在HTML输出中写入二进制数据,而XSLT 2.0及以上版本则可以。如果你使用的是较旧的XSLT版本,可能需要升级或使用特定的技术来绕过限制。 5. **XSLT处理器兼容性**:不同的XSLT处理器对某些...
- `s:xslt`: 应用XSLT转换,将Java对象转换为XML并格式化输出。 在实际开发中,这些标签的使用极大地提高了代码的可读性和可维护性,减少了硬编码,使得开发者能够更加专注于业务逻辑。通过结合Struts 2.0的Action...
首先,Xalan-J是一个实现了W3C XSL Transformations (XSLT) 1.0和2.0规范的处理器。XSLT是一种样式表语言,用于将XML文档转换成其他格式,如HTML、PDF或者新的XML文档。它允许开发者通过定义一系列规则来转换源XML...
Xalan是Apache软件基金会的一个开源项目,提供了一个符合XSL Transformations (XSLT) 1.0和2.0标准的实现,这是一种W3C推荐的XML数据转换技术。 1. **Xalan-J**: Xalan-J是Xalan的主要部分,它是一个Java实现的XSLT...
Xalan-J 2.7.1是该库的一个特定版本,提供对XSL Transformations (XSLT) 1.0和2.0标准的支持。 JSP文件上传下载是Web应用中常见的功能,对于用户来说,能够上传和下载文件是交互性的重要体现。在JSP中实现文件上传...
11. **XSLT版本差异**:可能对比不同版本的XSLT(1.0、2.0、3.0等)之间的差异和新增功能。 通过阅读《XSLT for Dummies》,读者可以逐步建立起对XSLT的理解,从简单的数据转换到复杂的逻辑控制,掌握这个强大工具...