- 浏览: 254627 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (232)
- 瞎扯两句 (8)
- 操作系统 (5)
- 工作笔记 (33)
- 设计模式 (1)
- java (57)
- Java IDE (7)
- hibernate (17)
- oracle (46)
- ms sql (2)
- spring (9)
- struts2 (0)
- javascript (16)
- java_code (2)
- java之集合 (2)
- java之线程 (4)
- java之IO (4)
- java之虚拟机 (6)
- java之异常 (0)
- EJB (4)
- XML (4)
- 数据结构-算法 (2)
- 架构设计 (5)
- 配置信息 (2)
- 阅读笔记 (6)
- IT专业英语 (1)
- PI (0)
- 单元测试 (1)
最新评论
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中合理添加简单逻辑。
= (等于)
!= (不等于)
< (小于)
> (大于)
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 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 > 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price > 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 >
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中合理添加简单逻辑。
= (等于)
!= (不等于)
< (小于)
> (大于)
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 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 > 10">
<td bgcolor="#ff00ff">
<xsl:value-of select="artist"/></td>
</xsl:when>
<xsl:when test="price > 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 >
发表评论
-
maven 和 sonar的集成
2013-05-22 18:34 1057maven 和 sonar的集成 1.须运行 Sonar ... -
观察者/监听器 在 Entity 上的应用
2013-05-09 16:10 6651. 创建 业务Entity 时, 不同的entity可以选 ... -
从spec开始做系统(页面tmplate问题)
2013-04-26 18:12 602好久不做页面了,差点搞不清页面之间的关系。 原来是因为在spe ... -
动态级联列表
2013-04-25 15:17 7211.典型如国家区域省级等。 数据结构: code: ... -
cache 的应用
2013-04-11 18:54 7821. 情境: 在用户注册时,需要注册的信息较多,如需要身份信 ... -
以用户请求为中心的实现
2013-04-10 11:25 8491. 定义抽象GenericRequest类。 该类具有 ... -
记录用户操作历史
2013-04-10 10:30 7641. 异步,通过jms来实现。 2. 容易改造,通过Enti ... -
kettle 应用 2
2013-03-26 18:42 0import org.pentaho.di.core ... -
kettle 应用
2013-03-26 11:57 0目前阶段主要是用kettle做一些数据的导入导出。 遇到的问 ... -
TreeMap 的应用
2013-03-06 18:40 10621. 应用场景。 对于一对多的映射 A --B --C ... -
sonar 安装问题汇总
2013-02-21 15:15 878首先参照 http://www.cnblogs.com/cui ... -
Bat命令学习
2013-02-20 12:11 1059基础部分: ======================== ... -
定时执行bat
2013-02-19 16:38 70911. 需求说明 要求每天定时执行自动化测试。例如每天晚上 ... -
frame 与 iframe 及其区别
2013-02-18 15:09 9921. html5 不支持frame。 2. iframe 可 ... -
tomcat 阅读笔记 3
2013-02-05 16:32 6621. lifesycleListener 是通过在conta ... -
Oracle编程艺术阅读笔记-1
2013-01-24 18:48 8711. 绑定变量。 不使用会产生的影响: 每次运 ... -
servlet怎么控制页面缓存
2013-01-04 21:33 924(转) Html页面中的HTTP ... -
搜索优化,动态页面,静态页面,伪静态页面
2013-01-04 17:56 1143我们经常会看到 , 在地 ... -
note
2012-12-27 18:10 6441. spring的JtaTransactionManage ... -
通过eventTrigger,JMS实现业务的异步处理
2012-12-27 15:44 843说明:实现对用户操作的跟踪。 eventTrigger来发送 ...
相关推荐
当新的新闻数据生成时,系统会应用XSLT模板,将XML数据转化为HTML静态页面,然后发布到Web服务器上。 C# CMS标签表明这个系统可能使用C#(一种面向对象的编程语言)作为主要开发语言,构建了内容管理系统。C#提供了...
本资源“winform 使用XSLT模板源码”显然是一个示例项目,展示了如何在WinForm应用中集成XSLT(eXtensible Stylesheet Language Transformations)技术。 XSLT是一种XML语言,主要用于转换XML文档。它的主要功能是...
通过特定的转换引擎(即XML Processor),原始的XML文档经过XSLT模板的转换后,最终输出符合需求的新格式文档。整个过程可以概括为:**XML原文档 → XSLT模板 → XML Processor → 输出文档**。 #### 二、XSLT转换...
4. XSLT模板匹配:模板匹配是XSLT的核心,它允许开发者根据源XML的结构和属性来定义不同的转换行为。通过使用模式匹配,如`match="/"`匹配根元素,`match="*"`匹配所有元素,或`match="@attr"`匹配指定属性,可以...
在XML文档中,每个元素都可能有对应的XSLT模板,这些模板定义了如何处理这些元素。XSLT的主要元素包括模板(template)、变量(variable)、函数(function)和模式(pattern)等。 XSLT的核心概念包括: 1. **...
XSLT的主要组成部分包括XSLT元素、XSLT函数、XSLT模板等。XSLT元素是XSLT语言的基本组成部分,包括、、、、、等。XSLT函数是XSLT语言中的一种内置函数,总共有超过100个,包括字符串、数值、日期和时间比较、节点和...
XSLT使用模板和模式匹配来决定如何呈现XML数据,这使得数据的展现形式可以灵活多变。"XSL gives your XML some style"这个文件名暗示了XSLT在美化XML数据展示方面的重要性。 在提供的文件列表中,我们看到多个涉及...
3. 匹配模式(Match Pattern):匹配模式指定模板应用于哪些XML节点。 4. 转换规则(Transformation Rules):这些规则定义了如何将源XML转换为目标格式。 5. 变量和参数(Variables and Parameters):可以存储和...
2. **模式(Patterns)**:模式是模板的一部分,用于指定模板应用于哪些XML节点。它可以是元素的名称、属性或其他XPath表达式。 3. **XPath(XML Path Language)**:XPath是XSLT中的关键部分,用于在XML文档中定位...
XSLT模板规则** 模板规则通过`<xsl:template>`元素定义,可以包含以下内容: - **模式匹配(Match Patterns)**:`match`属性用于指定匹配的XML元素。 - **选择性复制(Conditional Copying)**:`<xsl:if>`和`...
2. 模式匹配(Pattern Matching):模式匹配是XSLT选择要应用哪个模板的关键。每个模板都有一个模式,比如`<xsl:template match="elementName">`,这个模式会匹配所有名为"elementName"的元素。模式也可以使用XPath...
2. **应用模板**:根据XSLT样式表中的模板和匹配模式来处理XML文档中的各个元素。 3. **生成输出文档**:将处理结果转换成新的XML文档或其他格式的文档。 #### 五、XSLT的实际应用 XSLT的应用场景非常广泛,不仅...
这里的XSLT模板将元素的值插入到一个Word段落中。`前缀表示使用Open XML SDK的Word文档对象模型。 最后,使用XSLT处理器(如.NET框架中的System.Xml.Xsl.XslCompiledTransform类)将XML数据和XSLT样式表应用到Word...
例如,一个XSLT模板可能使用XPath表达式来选取所有`<book>`元素,然后对每个选取的元素进行处理,生成HTML列表。 《Beginning XSLT and XPath》这本书作为高清英文原版,将深入介绍这两个技术,涵盖基本概念、高级...
- **高效协作**:设计师专注于XML数据和XSLT模板,开发者关注jQuery和后端逻辑,各自的工作范围明确,减少了沟通成本。 - **可维护性**:数据和表现分离,修改设计或添加新功能时,只需调整XSLT模板,而不会影响XML...
XSLT模板是转换的核心,它们定义了如何处理特定的XML元素。良好的模板组织可以帮助代码生成更加清晰和可维护。 3.2.3 **结果输出** XSLT可以控制输出的结果格式,包括元素的命名、属性的设置以及文本的处理。在代码...
XSLT模板** XSLT转换由一系列模板规则组成。每个模板都有一个模式,当匹配到XML文档中的特定节点时,就会执行相应的处理。模式通常使用XPath表达式定义,而模板则包含转换指令。 **4. XSLT指令** - `apply-...
模板定义了如何转换XML元素,模式指定了何时应用这些模板,而函数则提供了在转换过程中执行计算和其他操作的能力。 1. **模板(Templates)**:在XSLT中,模板用于定义元素如何被转换。`元素名">`用来匹配特定的XML...
在XSLT模板中,XPath表达式用于选择要处理的节点或提取数据。这种组合使得开发者能高效地处理XML数据,实现复杂的转换逻辑。 在学习XPath和XSLT时,"Beginning XSLT and XPath"这样的资源是非常有价值的。这本书...