首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用apply templates退出循环

使用apply templates退出循环
EN

Stack Overflow用户
提问于 2014-09-03 08:02:51
回答 1查看 212关注 0票数 0

我的xml中有10个元素,如下所示,但我只需要使用apply templates捕获前3个元素

代码语言:javascript
复制
<name>hello</name>
<name>hello</name>
<name>hello</name>
<name>hello</name>
<name>hello</name>
............
......

有没有办法使用apply templates中的条件在前3个元素之后退出循环

EN

回答 1

Stack Overflow用户

发布于 2014-09-03 08:34:14

不需要退出循环,只需xsl:apply-templates到前三个name元素。

给定以下输入XML的

代码语言:javascript
复制
<?xml version="1.0"?>
<names>
  <name>Name 1</name>
  <name>Name 2</name>
  <name>Name 3</name>
  <name>Name 4</name>
  <name>Name 5</name>
</names>

这个XSLT:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
  <xsl:output method="xml" indent="yes"/>

  <xsl:template match="names">
    <new_names>
      <xsl:apply-templates select="name[position() &lt;= 3]"/>
    </new_names>
  </xsl:template>

  <xsl:template match="name">
    <new_name><xsl:value-of select="."/></new_name>
  </xsl:template>

</xsl:stylesheet>

将生成以下输出XML:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<new_names>
   <new_name>Name 1</new_name>
   <new_name>Name 2</new_name>
   <new_name>Name 3</new_name>
</new_names>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25634205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档