学习动易SF标签:XSLT基本语法

本文介绍了XSLT中value-of、for-each、if及choose等元素的基本使用方法,通过实例展示了如何从XML文档中提取数据、进行条件判断以及循环处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1XSLT <xsl:value-of> 元素用于提取某个选定节点的值,并把值添加到转换的输出流中。

不要想得那么复杂,说简单点就是显示XML文档中某个节点的值。在动易模板和动易标签中我们经常会看到<xsl:value-of select="'Title" /><xsl:value-of select="/NewDataSet/Table/Title" />这样的语句,没错那就是用来显示标题的。

2<xsl:for-each> 元素用于选取指定的节点集中的每个 XML 元素。这样说还是有节点抽象,下面我举个例子相信各位朋友会明白的!

例子:
要显示如下的文章列表:
.
文章标题001
.
文章标题002
.
文章标题003
.
文章标题004
.
文章标题005

动易标签查询语句生成的XML文档如下:
<NewDataSet><Table><Title>
文章标题001</Title><Title>文章标题002</Title><Title>文章标题003</Title><Title>文章标题004</Title><Title>文章标题005</Title></Table></NewDataSet>

<xsl:for-each>的作用其实就是将这些Title字段循环读出来

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/NewDataSet">
  <html>
  <body>
    <div>
      <ul>
      <xsl:for-each select="Table">
        <li><xsl:value-of select="title"/></li>
      </xsl:for-each>
      </ul>
    </div>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

用例子说话,其它就不多说啦!

3<xsl:if> 元素,通俗一点说那就是条件判断,只有条件成立才会输出if里面的内容

还是用上面的例子说明,如想让文章列表只显示前3个,那怎么办呢? 在循环中加个条件判断嘛!这个和写程序是一样的。具体的代码如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/NewDataSet">
  <html>
  <body>
    <div>
      <ul>
      <xsl:for-each select="Table">
<xsl:if test="position() &lt;= 3">
        <li><xsl:value-of select="title"/></li>
      </xsl:for-each>
      </ul>
    </div>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

position()--这个是xslt内置的函数,具体作用是指示循环中元素的位置,关于更多xslt的内置函数和方法以后的文章会给大家介绍的。

值得说明的是if中可以不断的嵌套if条件,要是有两个或三个以上条件用and或者or来连接。


3
<xsl:choose> 元素,与if一样也是条件判断,不同的是它还有个otherwise的条件。这个和我们程序里的if else的性质是一样的。不过在xslt里是whenotherwise
好了现在还是用上面的例子说明,如想让文章列表不同行用不同的颜色来区别开来,这样的html代码就要写成如下的格式
<ul>
<li class="list1">.
文章标题001</li>
<li class="list2">.
文章标题002</li>
<li class="list1">.
文章标题003</li>
<li class="list2">.
文章标题004</li>
<li class="list1">.
文章标题005</li>
</ul>

在标签输出的时候就得用上<xsl:choose>这个判断了,当为基数行的时候就是class="list1",偶数行的时候为class="list2",具体的代码如下:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/NewDataSet">
  <html>
  <body>
    <div>
      <ul>
      <xsl:for-each select="Table">
<xsl:choose>
<xsl:when test="(position() mod 2)!=0">
        <li class="list1"><xsl:value-of select="title"/></li>
</xsl:when>
<xsl:otherwise>
 <li class="list2"><xsl:value-of select="title"/></li>
</xsl:otherwise>
</xsl:choose>
      </xsl:for-each>
      </ul>
    </div>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

好了,到现在为止,写最简单的动易sf的标签基本不是什么问题了。

 

转载自《艺尚网络》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值