xsl特殊符号输出总结
一、<>的輸出寫法
<xsl:value-of disable-output-escaping="yes" select="concat('<','' , '>')" />
輸出結(jié)果:<>
<br>的輸出方法:
<xsl:text disable-output-escaping="yes"><br></xsl:text>
二、if寫法
<xsl:if test="@Name='ID'">
? ? ? ? [Column(ColumnName = "<xsl:value-of select="@Name" />", IsKey = true, Identity = true, UpdateDisabled = false)]</xsl:if>
條件為真的時候,輸出if標簽內(nèi)的內(nèi)容
三、<xsl:choose>寫法
? ?<xsl:choose>
? ? ? ? ? <xsl:when test="id < 50">
? ? ? ? ? ? ? ? ?<xsl:value-of select="id" />
? ? ? ? ? </xsl:when>
? ? ? ? ? <xsl:otherwise>
? ? ? ? ? ? ? ? ?<xsl:value-of select="id" />
? ? ? ? ? </xsl:otherwise>
? ? </xsl:choose>
四、定義變量
<xsl:param name="viewtype" select="'view'"/>
?<xsl:variable name="URLVariable">
?<xsl:choose>
? <xsl:when test="contains($viewtype,'edit')"> ?
? ? <xsl:text>/flowEngine/page1.wml</xsl:text>
? </xsl:when>
? ?<xsl:when test="contains($viewtype,'view')"> ?
? ?<xsl:text>/flowEngine/page2.wml</xsl:text>
? </xsl:when>
? ?<xsl:otherwise>
? ?<xsl:text>/flowEngine/error.wml</xsl:text> ??
? ?</xsl:otherwise>
?</xsl:choose>
</xsl:variable>
使用:
<xsl:template match="/data">
?<xsl:value-of select ="$URLVariable"/>
?<a href="{$URLVariable}"? > myURL</a>
?...........在實例空間中都有效
</xsl:template>
</xsl:stylesheet >
獲取表名:NIS_HLZK_ZKJH_MX
<xsl:variable name="TableVariable">
?? ? ??? ?<xsl:apply-templates select="//TableName" />
</xsl:variable>
截取表名顯示:
<xsl:value-of select="substring-after($TableVariable,'NIS_HLZK_')" />Obj
顯示為:ZKJH_MXObj
五、定義自增變量
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
? ? <xsl:for-each select="root/e">
? ? ? 第<xsl:value-of select="position()"/>個e元素:<xsl:value-of select="."/>
? ? </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
輸出結(jié)果如下所示。
第1個e元素:001
第2個e元素:002
第3個e元素:003
第4個e元素:004
第5個e元素:005
引用:
六、for循環(huán)
<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>
注:
1、XSL中利用xsl:for-each時給每一項添加序號:
<xsl:number value="position()" />
2、判斷是否是第一次循環(huán)的值:
<xsl:if test="position()=1">需要輸出的值</xsl:if>
3、判斷是否是循環(huán)的最后一個值:
<xsl:if test="position()=last()">需要輸出的值</xsl:if>
4、判斷不是循環(huán)的最后一個值:
<xsl:if test="position()!=last()">需要輸出的值</xsl:if>
5、循環(huán)中添加篩選條件
<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>參照網(wǎng)址:http://www.w3school.com.cn/xsl/xsl_for_each.asp
輸出結(jié)果:輸出artist字段包含“Bob Dylan”的記錄
如:返回指定的第幾行或者第幾行之前或者之后
顯示一條記錄:
?<xsl:for-each select="FIELDS/FIELD[position()=1]">
?? ??? ? ?<xsl:apply-templates select="@Name" />
?</xsl:for-each>
顯示第五條記錄之后的記錄:
<xsl:for-each select="FIELDS/FIELD[position()>5]">
?? ??? ? ?<xsl:apply-templates select="@Name" />
?</xsl:for-each>
6、不用for-each循環(huán),直接輸出:則只顯示第一條記錄
<xsl:value-of select="FIELDS/FIELD/@Name"/>
只顯示第一條記錄的name字段
七、空格輸出:
<xsl:value-of select="string(' ')"/>
或者:
 
八、xslt/xpath對不存在屬性的判斷問題
有xml片段如下
<test>
<mytag?title="good" name="kankan"/>
<mytag name="xiangxiang"/>
</test>
寫xsl片段如下
<xsl:for-each select="/test/mytag">
<xsl:if test="@title != 'bad'">
<xsl:value-of select="@name"/>
</xsl:if>
</xsl:for-each>
本意是查找所有屬性title不等于bad的mytag,然后輸出它的name。
原來以為會輸出:
kankan
xiangxiang
結(jié)果只會輸出
kankan
原因貌似xslt1.0中對于<xsl:if test="@title != 'bad'">,如果@title不存在,將直接認為判斷失敗而返回。哪怕交換順序,寫成test="'bad' != $title"也不行。
后來改成
<xsl:variable name="mytitle" select="concat('fake', @title)"/>
<xsl:if test="$mytitle != 'fakebad'">
即可
九、除法:
循環(huán)顯示偶數(shù)行、基數(shù)行
<xsl:for-each select="FIELDS/FIELD">
<xsl:if test="position() mod 2 = 0">
? ? ? ?偶數(shù)行
</xsl:if>
<xsl:if test="position() mod 2 = 1">
? ? ? ?基數(shù)數(shù)行
</xsl:if>
</xsl:for-each> ??
十、轉(zhuǎn)義字符
在XML中,需要轉(zhuǎn)義的字符有:?
(1)& &?
(2)< <?
(3)> >?
(4)" "?
(5)' '?
十一、參照網(wǎng)址:
https://blog.csdn.net/z69183787/article/details/26448337
https://www.cnblogs.com/demonxian3/p/9151945.html
https://blog.csdn.net/dragoo1/article/details/46681579
http://wangpj.iteye.com/blog/830315
https://blog.csdn.net/yintianqin/article/details/72976278
總結(jié)
以上是生活随笔為你收集整理的xsl特殊符号输出总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 频率归一化的定义
- 下一篇: Latex排版—(2)基本结构