JMJS系统总结系列----XSLT的语句规则(一)
xslt是一种用于将xml文档转换成xhtml的语言。
xslt文档是一个xml文件
<?xml version="1.0" encoding="utf-8"?>
声明文档的命名空间
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
或者:
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslt:import>元素: 用于把一个样式表中的内容倒入另一个样式表中
<xsl:import href="AcceptLeft.xslt"/>
href属性:设置引入模版的路径。
<xslt:output>元素: 定义输出文档的格式
<xsl:output method="html" indent="yes"/>
method: 定义输出的格式。默认为xml。
Indent: 在输出结果树时是否要增加空白。
<xslt:template>元素 模板元素
<xsl:template match="/" name="AcceptInfoEdit">
match: 属性用于把模板关联到某个 XML 元素("/" 定义了整个文档)。
name:定义模版的名称。
<xslt:call-template>元素 可调用一个指定的模板
<xsl:call-template name="AcceptBaseInfo"></xsl:call-template>name:被调用的模版名称。
注意:必须在当前模版为使用<xslt:import href= ‘AcceptBaseInfo> 倒入模版,才能使用<salt:call-template>调用。
<xslt:value-of>元素 用于提取某个选定节点的值
<xsl:value-of select="Accept/ApprovalItemName"/>
select:指定xml元素中摸个具体节点的值。
<xslt:attribute>元素 用于给某个元素添加属性
<img src="images/icon_upload.gif" width="16" height="16">
<xsl:attribute name="onclick">
SelectRegion(<xsl:value-of select="Accept/Project/UserRegionID"/>);
</xsl:attribute>
</img>
Name:属性名称。
<xsl:attribute>具体的属性值</xsl:attribute>
<xslt:if>元素 用于放置针对 XML 文件内容的条件测试
<xsl:if test="Accept/AcceptID > 0">
<xsl:call-template name="AcceptInfoOperator"></xsl:call-template>
</xsl:if>
test: 规定要测试的条件。
<xslt:choose>元素 用于结合 <xsl:when> 和 <xsl:otherwise> 来表达多重条件测试
<xsl:choose>
<xsl:when test="Accept/FlowStop = 1">
<input type="radio" id="Accept/IsSupervisions1" name="Accept/IsSupervisions" onclick="SetValue('IsSupervisions','1')" value="1"/>
<label for="Accept/IsSupervisions1">是</label>  
<input type="radio" id="Accept/IsSupervisions2" name="Accept/IsSupervisions" onclick="SetValue('IsSupervisions','2')" value="2" checked="true"/>
<label for="Accept/IsSupervisions2">否</label>
</xsl:when>
<xsl:otherwise>
<input type="radio" id="Accept/IsSupervisions1" name="Accept/IsSupervisions" onclick="SetValue('IsSupervisions','1')" value="1" checked="true" />
<label for="Accept/IsSupervisions1">是</label>  
<input type="radio" id="Accept/IsSupervisions2" name="Accept/IsSupervisions" onclick="SetValue('IsSupervisions','2')" value="2" />
<label for="Accept/IsSupervisions2">否</label>
</xsl:otherwise>
</xsl:choose>
test: 规定要测试的条件。
<xsl:otherwise>:不满足条件的其他情况。
<xlst:for-each>元素 在 XSLT 中进行循环
<xsl:for-each select="Accept/FlowWorkBooks/FlowWorkBook">
<tr>
<td height="30" align="left" class="form_td">
<xsl:value-of select="FlowName"/>
</td>
<td align="left" class="form_td">
<xsl:call-template name="FormatDate">
<xsl:with-param name="DateTime" select="RealityDate"/>
</xsl:call-template>
</td>
<td align="left" class="form_td">
<xsl:value-of select="Opinion"/>
</td>
</tr>
</xsl:for-each>
select: 被处理的节点集。