zoukankan      html  css  js  c++  java
  • xsl特殊符号输出总结 转

    (47条消息) xsl特殊符号输出总结_书剑零落的博客-CSDN博客

    一、<>的输出写法

    <xsl:value-of disable-output-escaping="yes" select="concat('&lt;','' , '&gt;')" />

    输出结果:<>

    <br>的输出方法:

    <xsl:text disable-output-escaping="yes">&lt;br&gt;</xsl:text>

    二、if写法

    <xsl:if test="@Name='ID'">
    [Column(ColumnName = "<xsl:value-of select="@Name" />", IsKey = true, Identity = true, UpdateDisabled = false)]</xsl:if>

    条件为真的时候,输出if标签内的内容

    三、<xsl:choose>写法

    <xsl:choose>
    <xsl:when test="id &lt; 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>

    输出结果如下所示。

    第1个e元素:001

    第2个e元素:002

    第3个e元素:003

    第4个e元素:004

    第5个e元素:005

    引用:

    六、for循环

    <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、判断是否是第一次循环的值:

    <xsl:if test="position()=1">需要输出的值</xsl:if>

    3、判断是否是循环的最后一个值:

    <xsl:if test="position()=last()">需要输出的值</xsl:if>

    4、判断不是循环的最后一个值:

    <xsl:if test="position()!=last()">需要输出的值</xsl:if>

    5、循环中添加筛选条件

    <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>
    参照网址:http://www.w3school.com.cn/xsl/xsl_for_each.asp

    输出结果:输出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循环,直接输出:则只显示第一条记录

    <xsl:value-of select="FIELDS/FIELD/@Name"/>

    只显示第一条记录的name字段

    七、空格输出:

    <xsl:value-of select="string(' ')"/>

    或者:

    &#160;

    八、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

    结果只会输出

    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'">

    即可

    九、除法:

    循环显示偶数行、基数行

    <xsl:for-each select="FIELDS/FIELD">

    <xsl:if test="position() mod 2 = 0">
    偶数行
    </xsl:if>

    <xsl:if test="position() mod 2 = 1">
    基数数行
    </xsl:if>

    </xsl:for-each>

    十、转义字符

    在XML中,需要转义的字符有:
      (1)&   &amp;
      (2)<   &lt;
      (3)>   &gt;
      (4)"   &quot;
      (5)'   &apos;

    十一、参照网址:

    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
    ————————————————
    版权声明:本文为CSDN博主「书剑零落」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/shunhua19881987/article/details/81111185

  • 相关阅读:
    管理经济学之第三章(消费者效用分析)
    管理经济学之第二章(供求分析)
    JVM之GC回收信息详解
    管理经济学之第一章(导论)
    JAVA的引用类型
    6.jQuery动画和队列,简单的queue()入队和dequeue()出队实现
    5.jQuery实现简单的on()和trigger()方法
    4.jQuery的clone()方法和data()方法
    3.jQuery操作DOM对象的方法
    2.jQuery简单实现get()和eq()和add()和end()方法
  • 原文地址:https://www.cnblogs.com/shuihaya/p/15556725.html
Copyright © 2011-2022 走看看