我需要一个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;
答案 0 :(得分:0)
试试这段代码
<xsl:template match="/">
<good>
<xsl:variable name="data" select="employees//employee[./age>=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>