`
canonical
  • 浏览: 366915 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

[导入]xslt有什么用

阅读更多

     adun今天问我xslt到底有什么用。相对于其他技术,它有什么存在的必要性。
    xslt的主要作用是对xml结构的转换,即它是一种描述结构变换规则的语言。不过也可以将它与我们更熟悉的用于生成html(结构)的模板语言作一个对比。
1. 两者都能直接生成xml格式的文本(结构)
2. 两者都有循环和判断等逻辑处理语句。
3. 模板语言可以通过EL表达式等语言取得源数据, xslt通过xpath语法取得源数据.
4. 模板语言通过自定义tag等机制实现分解和组合, xslt通过xsl:call-template等语法实现分解与组合.

     tpl等模板语言直接操纵java中的对象, 体现的是图(Graph)模型, 并通过对象函数封装了部分动态性. 一般访问的时候是通过短程关系逐级访问,例如x.y.funcA().b。利用apache项目组的jxpath包,我们也可以使用类似于xpath的语 法在对象图上进行全局访问。
    xslt使用严格定义的xpath语法访问Tree结构,具有很强的数据操纵能力,例如我们可以通过//mynode等语法轻易的实现节点的聚合,构造出 新的结构。在一般xslt包的实现中,都提供了javascript扩展,可以使用javascript构造出的数据节点。

     在tpl这样的模板语言中java中的数据对象结构与tpl中的模板结构(处理规则的结构)是两分的,而在xslt中输入数据结构与xslt自身处理规则 的机构却是统一的。实际上tpl这样的模板语言主要是基于过程语义,即先做。。。,用到。。。,然后。。。, 而xslt对于输入数据的结构具有明确的全局性假设,主要是一种转换语义,即不论在什么情况下,只要遇到。。。,就做。。。。 在xslt中可以通过xpath语法指定处理规则针对数据(输入结构)的的触发条件, 而在tpl中只能通过<c:decorator>为tpl标签指定转换器,而无法针对数据指定处理规则。

     在数据访问模型这一方面,原则上说xslt与模板语言各有优势。实际在用于html生成的过程中,xpath的全局访问和匹配能力一般难以得到发挥,而 xml格式的限制又在一定程度上阻碍了使用灵活的数据供体,这方面模板语言有一定的优势。但是xslt的约束更强也有本质性的好处,它使用xml数据并输 出xml数据,维护了结构的同质性,便于管道操作。因为假设更明确,xslt对于xml格式的数据的操纵和封装能力也要强于模板语言。例如它可以使用来为 节点追加属性。

     xslt在用于xhtml生成时的一个主要劣势在于它是对变换规则的分解之后的描述,而我们所希望得到的是最终的结果,即这些规则综合应用所生成的结果。 虽然xslt的语法是xml语言,与xhtml在语法格式上保持了一致性。但是在xslt中,xslt的标签破坏了xhtml语义上的结构,使得目前无法 做到所见即所得。我们不得不在头脑中运行xslt规则来想象最终的结果,这无疑是痛苦的。模板语言在这方面要轻松许多。

     xslt的另一个问题是有时xml语法显得过于冗长了。在操纵一些局部结构的时候,xml节点并不一定是合适的表达。例如

<xsl:value-of select="$x"/> 对比 ${x},


<xsl:call-template name="subrule">
    <xsl:with-param name="argA"><xsl:value-of select="substring-after($path,'.')"/></xsl:with-param>
</xsl:call-template>
对比
<my:subrule argA="${path.substringAfter('.')}" />

在调用子模板方面,显然xslt封装的抽象层次也要弱于tpl模板语言。


     xslt作为一种xml格式的结构变换语言,维护了xml世界的概念完整性,其意义无疑是重大的。但并不是所有时候xml都是最适的描述模型。我们最好还 是将它与其他技术结合使用。目前在witrx平台中,我们对于xslt的使用主要是对tpl模板进行布局和过滤处理,即xslt用于对处理规则进行变换, 而将根据数据生成html这个最细致的工作留给过程处理能力和封装能力更强的tpl模板语言。

分享到:
评论

相关推荐

    XSLT 元素使用说明

    ### XSLT 元素使用说明 #### 概述 XSLT(Extensible Stylesheet Language Transformations)是一种用于转换XML文档的语言。通过XSLT,开发者能够将一种格式的XML文档转换为另一种格式,甚至是非XML格式如HTML或纯...

    XSLT标准参考手册

    在使用“XSLT标准参考手册”时,你可以通过CHM文件的索引、目录和搜索功能快速找到所需的信息。手册通常会详细解释每种元素、属性、函数和指令的用法,并给出示例,帮助读者理解和掌握XSLT语言的各个层面。 学习...

    xslt 扩展PDF教程

    标题:“XSLT扩展PDF教程” 描述:本教程旨在深入探讨XSLT(Extensible Stylesheet Language Transformations)的...然而,正确实施这些扩展需要对XSLT处理器的支持有深刻理解,同时也需考虑代码的可移植性和兼容性。

    xslt.rar_xml xslt_xslt

    用户还可以通过导入XSLT扩展库来使用自定义函数。 在实际应用中,XSLT常常用于将XML数据转换为HTML,以便在Web浏览器中展示,或者转换为PDF格式进行打印。例如,`200582623234540081.pdf`这个文件可能是通过XSLT将...

    XSLT是什么类型的语言

    5. **模式匹配和优先级**:如果一个节点匹配多个模板,XSLT 有一套规则来决定使用哪个模板,包括匹配模式的优先级和模板的导入顺序。 6. **流式处理(Streaming)**:XSLT 支持流式处理,允许在内存有限的情况下...

    Beginning XSLT and Xpath

    5. **导入和导出(Importing and Exporting)**:允许在多个XSLT样式表之间共享代码。 **XPath** 是XML文档的导航语言,它提供了简洁的表达式语法,用于查找XML文档中的节点,包括元素、属性、文本等。XPath的主要...

    xslt_filter-1.5.2.tar.gz

    5. **examples**:示例目录,提供了使用XSLT Filter的实例,有助于初学者快速上手。 6. **Makefile**或类似文件:构建脚本,用于编译和打包软件。 在部署和使用XSLT Filter 1.5.2时,开发者需要根据系统环境编译...

    xslt实例(实际例子)

    5. **导入与导出**:在描述中提到了"Export 3个, Import 3个",这可能指的是压缩包中的例子涉及到如何使用XSLT的`<xsl:import>`和`<xsl:export>`指令。`<xsl:import>`用于在一个样式表中引入另一个样式表的功能,而`...

    xslt从入门到精通(源代码)

    《XSLT从入门到精通》是一本深入探讨XSLT技术的专业书籍,它涵盖了XSLT的基础知识、进阶技巧以及实际应用案例。...在实践中不断尝试和理解这些代码,将有助于提升你的XSLT技能,使你成为一名真正的XSLT专家。

    xslt经典教程—网页设计师必备

    XSLT还包括了条件语句(如`<xsl:if>`和`<xsl:choose>`)、循环(如`<xsl:for-each>`)以及导入和包含其他样式表的能力,使得复杂的转换逻辑得以实现。 **学习资源** 本教程《XSLT经典教程》将深入浅出地讲解上述...

    XSLT从入门到精通(PDG)

    另外,XSLT 2.0和XSLT 3.0版本引入了许多新特性,如XPath 2.0/3.0的增强功能、流式处理和支持函数库的导入。教程会对比不同版本间的差异,使读者能够适应不断演进的技术环境。 最后,为了帮助读者更好地实践和巩固...

    Xslt语法参考手册.pdf

    当在一个XSLT样式表中使用 `<xsl:import>` 元素导入另一个样式表时,该元素可以被用来调用导入样式表中的模板。 - **语法**:`<xsl:apply-imports/>` - **属性**:无 - **示例**: ```xml xmlns:xsl=...

    xslt转化HTML标签与数据结合

    5. **导入和包含**:多个XSLT样式表可以通过`<import>`和`<include>`来组合,方便代码复用和管理。 6. **HTML生成**:XSLT可以创建完整的HTML结构,包括头部信息、表格、列表、链接等,使得XML数据能够以网页的形式...

    XSLT元素使用说明

    当XSLT处理器遇到`<xsl:apply-imports>`元素时,它将查找是否有任何适用的模板来自已导入的样式表,并执行它们。这在需要重用模板或模块化样式表设计时非常有用。 #### 语法 `<xsl:apply-imports/>` 该元素没有属性...

    Xml+Xslt测试工具

    6. **导入导出**:支持从不同格式导入XML和XSLT文件,以及将结果导出为不同格式。 7. **版本控制**:与版本控制系统集成,便于团队协作。 8. **支持XPath**:XPath是查询XML文档的表达式语言,工具通常内置XPath...

    xsl.rar_xsl_xsl 参考手册_xslt_xslt用法

    **XSLT的使用场景:** 1. **数据展示**:将XML数据转换为适合网页显示的HTML。 2. **报表生成**:从XML数据源生成各种格式的报表,如PDF或CSV。 3. **数据交换**:在不同系统间,通过转换XML格式来兼容不同的数据...

    xslt标准参考手册

    此外,XSLT还提供了一些高级特性,如模板继承和导入,以及自定义函数的编写,这些都能帮助构建可复用和模块化的转换代码。 总之,《XSLT标准参考手册》涵盖了XSLT语言的所有核心概念和高级特性,无论你是初学者还是...

    绝顶得XSLT学习资料

    4. **样式表结构**:解释如何组织XSLT样式表,包括导入和包含其他样式表,以及命名空间的处理。 5. **高级特性**:深入探讨如模板优先级、模式冲突解决、扩展功能、流控制(如条件语句和循环)等高级话题。 6. **...

Global site tag (gtag.js) - Google Analytics