xslt中xml输入的额外子集

时间:2014-12-08 04:09:13

标签: xml xslt

我需要一个xslt文件来转换输入xml。它需要在年龄超过40时输出员工的姓名。每条记录最后需要一个逗号,最后一条记录需要一个分号。

输入

<employees>
    <employee>
        <name>Bill Jordan</name>
        <age>40</age>
    </employee>
    <employee>
        <name>Larry Bird</name>
        <age>42</age>
    </employee>
    <employee>
        <name>Joe King</name>
        <age>25</age>
    </employee>
    <employee>
        <name>John Smith</name>
        <age>45</age>
    </employee>
    <employee>
        <name>Kathy Bush</name>
        <age>31</age>
    </employee>
</employees>

输出

比尔乔丹,

拉里伯德,

John Smith;

1 个答案:

答案 0 :(得分:0)

试试这段代码

<xsl:template match="/">
    <good>
    <xsl:variable name="data" select="employees//employee[./age&gt;=40]"/>
      <xsl:for-each select="$data">
        <xsl:choose>
          <xsl:when test="count($data)!=position()">
            <xsl:value-of select="name"/>
            <xsl:text>,</xsl:text>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="name"/>
            <xsl:text>;</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
    </good>
  </xsl:template>