加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xml – XSLT中的变量增量

发布时间:2020-12-16 22:53:47 所属栏目:百科 来源:网络整理
导读:我有一个像xml这样的文件 node elm val="data1"/ elm val="data2"/ elm val="data3"/ elm val="data4"/ elm val="data5"/ elm val="data6"/ elm val="data7"//node 我需要为这个xml文件编写一个xslt来显示在表格中 1 dat1 2 dat2 3 dat3 4 dat4 5 dat5 6 dat
我有一个像xml这样的文件

<node>
 <elm val="data1"/>
 <elm val="data2"/>
 <elm val="data3"/>
 <elm val="data4"/>
 <elm val="data5"/>
 <elm val="data6"/>
 <elm val="data7"/>
</node>

我需要为这个xml文件编写一个xslt来显示在表格中

1 dat1
  2 dat2
  3 dat3
  4 dat4
  5 dat5
  6 dat6
  7 dat7

请帮我这样做

解决方法

<xsl:tempate match="node">
  <table>
    <xsl:call-template select="elm"/>
  </table>
</xsl:template>

<xsl:template match="elm">
  <tr>
    <td>
      <xsl:value-of select="count(preceding-sibling::elm) + 1"/>
    </td>
    <td>
      <xsl:value-of select="@val"/>
    </td>
  </tr>
</xsl:template>

或者,如果需要确切的输出,请使用以下elm模板.

<xsl:template match="elm">
  <xsl:param name="pos" select="count(preceding-sibling::elm) + 1"/>
  <tr>
    <td>
      <xsl:value-of select="$pos"/>
    </td>
    <td>
      <xsl:text>dat</xsl:text>
      <xsl:value-of select="$pos"/>
    </td>
  </tr>
</xsl:template>

或者在文本输出的情况下:

<xsl:tempate match="node">
  <xsl:foreach select="elm">
     <xsl:value-of select="count(preceding-sibling::elm) + 1"/>
     <xsl:text> dat</xsl:text>
     <xsl:value-of select="count(preceding-sibling::elm) + 1"/>
     <xsl:text  disable-output-escaping="yes">&amp;#xA;</xsl:text>
  </xsl:foreach>
</xsl:template>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读