`

xslt模板应用

阅读更多
1.类介绍
XslUtil.java 为主要工具类,提供由xml转换成用户期望xml格式的功能,其中
public static String transformXml(String xslPath,String xml) throws Exception
方法提供此功能,只需传入xsl(xml转换规则模版)的路径和需要转换的xml字符串即可。

StringInputStream.java
StringOutputStream.java
这两个类主要是通过将字符串和数据流在内存中转换,减少IO读写,提高整体程序速度,因为XSL本身非常占用CPU资源和内存资源,因此优化代码十分必要。
2.代码效率
现在的代码,速度可达到100个/秒,如遇到效率问题,可能是其他方面的问题,或是考虑增加服务器。
3.xsl模版规则介绍
<xsl:value-of select="catalog/cd/title"/>
这种方式主要是直接从源xml中获取数据,其中catalog/cd/title这种类似与目录的结构就是源xml中的层次或者父子结构,也就是下面的”test data”数据。
<catalog>
<cd>
<title>
Test data
</title>
</cd>
</catalog>


<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>
源XML中有多个重复标签时,使用for-each可以循环赋值。
例如
<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
</catalog>

<xsl:for-each select="catalog/cd[artist='Bob Dylan']">
   <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
   </tr>
   </xsl:for-each>
在select中合理添加简单逻辑。
=  (等于)
!= (不等于)
&lt; (小于)
&gt; (大于)

<xsl:for-each select="catalog/cd">
      <xsl:if test="price &gt; 10">
        <tr>
          <td><xsl:value-of select="title"/></td>
          <td><xsl:value-of select="artist"/></td>
        </tr>
      </xsl:if>
      </xsl:for-each>
If判断,可以在循环或是选取数据时添加if判断。Test是cd下面的一个节点。但是注意,这种if没有else的。下面会介绍一种可以当作if else的标签。
<xsl:choose>
          <xsl:when test="price &gt; 10">
            <td bgcolor="#ff00ff">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:when test="price &gt; 9">
            <td bgcolor="#cccccc">
            <xsl:value-of select="artist"/></td>
          </xsl:when>
          <xsl:otherwise>
            <td><xsl:value-of select="artist"/></td>
          </xsl:otherwise>
        </xsl:choose>
Choose就跟if else一样,只不过是用when otherwise。

<xsl:for-each select="catalog/cd">
      <xsl:sort select="artist"/>
      <tr>
        <td><xsl:value-of select="title"/></td>
        <td><xsl:value-of select="artist"/></td>
      </tr>
      </xsl:for-each>
结果排序,就是对一个数组型的数据对某个特定字段排序

4.补充
怎么来判断元素endDate是否存在?

<xsl:if test="message/data/bus/endDate">
   元素endDate存在
</xsl:if >
分享到:
评论

相关推荐

    基于xslt模板的静态新闻发布系统

    当新的新闻数据生成时,系统会应用XSLT模板,将XML数据转化为HTML静态页面,然后发布到Web服务器上。 C# CMS标签表明这个系统可能使用C#(一种面向对象的编程语言)作为主要开发语言,构建了内容管理系统。C#提供了...

    winform 使用XSLT模板源码

    本资源“winform 使用XSLT模板源码”显然是一个示例项目,展示了如何在WinForm应用中集成XSLT(eXtensible Stylesheet Language Transformations)技术。 XSLT是一种XML语言,主要用于转换XML文档。它的主要功能是...

    XSLT简单教程- XSLT的实例

    通过特定的转换引擎(即XML Processor),原始的XML文档经过XSLT模板的转换后,最终输出符合需求的新格式文档。整个过程可以概括为:**XML原文档 → XSLT模板 → XML Processor → 输出文档**。 #### 二、XSLT转换...

    xslt手册

    4. XSLT模板匹配:模板匹配是XSLT的核心,它允许开发者根据源XML的结构和属性来定义不同的转换行为。通过使用模式匹配,如`match="/"`匹配根元素,`match="*"`匹配所有元素,或`match="@attr"`匹配指定属性,可以...

    xslt.rar_xml xslt_xslt

    在XML文档中,每个元素都可能有对应的XSLT模板,这些模板定义了如何处理这些元素。XSLT的主要元素包括模板(template)、变量(variable)、函数(function)和模式(pattern)等。 XSLT的核心概念包括: 1. **...

    XSLT经典教程.doc

    XSLT的主要组成部分包括XSLT元素、XSLT函数、XSLT模板等。XSLT元素是XSLT语言的基本组成部分,包括、、、、、等。XSLT函数是XSLT语言中的一种内置函数,总共有超过100个,包括字符串、数值、日期和时间比较、节点和...

    xml与xslt应用手册

    XSLT使用模板和模式匹配来决定如何呈现XML数据,这使得数据的展现形式可以灵活多变。"XSL gives your XML some style"这个文件名暗示了XSLT在美化XML数据展示方面的重要性。 在提供的文件列表中,我们看到多个涉及...

    xml和xslt在Web开发中的应用

    3. 匹配模式(Match Pattern):匹配模式指定模板应用于哪些XML节点。 4. 转换规则(Transformation Rules):这些规则定义了如何将源XML转换为目标格式。 5. 变量和参数(Variables and Parameters):可以存储和...

    XSLT标准参考手册

    2. **模式(Patterns)**:模式是模板的一部分,用于指定模板应用于哪些XML节点。它可以是元素的名称、属性或其他XPath表达式。 3. **XPath(XML Path Language)**:XPath是XSLT中的关键部分,用于在XML文档中定位...

    xslt语法参考手册

    XSLT模板规则** 模板规则通过`&lt;xsl:template&gt;`元素定义,可以包含以下内容: - **模式匹配(Match Patterns)**:`match`属性用于指定匹配的XML元素。 - **选择性复制(Conditional Copying)**:`&lt;xsl:if&gt;`和`...

    XSLTXSLTXSLT

    2. 模式匹配(Pattern Matching):模式匹配是XSLT选择要应用哪个模板的关键。每个模板都有一个模式,比如`&lt;xsl:template match="elementName"&gt;`,这个模式会匹配所有名为"elementName"的元素。模式也可以使用XPath...

    xslt标准

    2. **应用模板**:根据XSLT样式表中的模板和匹配模式来处理XML文档中的各个元素。 3. **生成输出文档**:将处理结果转换成新的XML文档或其他格式的文档。 #### 五、XSLT的实际应用 XSLT的应用场景非常广泛,不仅...

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

    这里的XSLT模板将元素的值插入到一个Word段落中。`前缀表示使用Open XML SDK的Word文档对象模型。 最后,使用XSLT处理器(如.NET框架中的System.Xml.Xsl.XslCompiledTransform类)将XML数据和XSLT样式表应用到Word...

    Beginning XSLT and Xpath

    例如,一个XSLT模板可能使用XPath表达式来选取所有`&lt;book&gt;`元素,然后对每个选取的元素进行处理,生成HTML列表。 《Beginning XSLT and XPath》这本书作为高清英文原版,将深入介绍这两个技术,涵盖基本概念、高级...

    xslt+xml+jquery建站

    - **高效协作**:设计师专注于XML数据和XSLT模板,开发者关注jQuery和后端逻辑,各自的工作范围明确,减少了沟通成本。 - **可维护性**:数据和表现分离,修改设计或添加新功能时,只需调整XSLT模板,而不会影响XML...

    XSLT自动代码生成学习笔记

    XSLT模板是转换的核心,它们定义了如何处理特定的XML元素。良好的模板组织可以帮助代码生成更加清晰和可维护。 3.2.3 **结果输出** XSLT可以控制输出的结果格式,包括元素的命名、属性的设置以及文本的处理。在代码...

    XSLT指南

    XSLT模板** XSLT转换由一系列模板规则组成。每个模板都有一个模式,当匹配到XML文档中的特定节点时,就会执行相应的处理。模式通常使用XPath表达式定义,而模板则包含转换指令。 **4. XSLT指令** - `apply-...

    XSLT使用的例子

    模板定义了如何转换XML元素,模式指定了何时应用这些模板,而函数则提供了在转换过程中执行计算和其他操作的能力。 1. **模板(Templates)**:在XSLT中,模板用于定义元素如何被转换。`元素名"&gt;`用来匹配特定的XML...

    XPath and XSLT

    在XSLT模板中,XPath表达式用于选择要处理的节点或提取数据。这种组合使得开发者能高效地处理XML数据,实现复杂的转换逻辑。 在学习XPath和XSLT时,"Beginning XSLT and XPath"这样的资源是非常有价值的。这本书...

Global site tag (gtag.js) - Google Analytics