使用XSL IF检查元素是否以XML格式显示

时间:2018-04-26 15:15:08

标签: xml xslt

我有以下XML文件:

    <club>
      <person>
        <name>name</name>
        <ranking>1</ranking>
        <nationality>spanish</nationality>
        <joined>2007</joined>
        <joined>2009</joined >
      </person>

      <person>
        <name>name</name>
        <ranking>2</ranking>
        <nationality>english</nationality>
      </person>
    </club>

我想创建一个XSLT文件,可以搜索XML并检查此人是否已加入(<joined>)。然后我想显示这个人加入表格的名称和年份。我不确定这是否完全可能,但任何帮助将不胜感激。 (并非列表中的所有人都会加入)。

1 个答案:

答案 0 :(得分:3)

使用此:

XSLT 2.0

<xsl:template match="information">
    <table>
        <xsl:for-each select="person[joined]">
            <tr>
                <td><xsl:value-of select="name"/></td>
                <td><xsl:value-of select="joined" separator=", "/></td>
            </tr>
        </xsl:for-each>
    </table>
</xsl:template>

请参阅https://xsltfiddle.liberty-development.net/eiZQaEZ

处的 XSLT 2.0 转换

对于 XSLT 1.0 ,您可以将第二个td更改为

<td><xsl:for-each select="joined">
       <xsl:value-of select="."/>
       <xsl:if test="position() != last()">, </xsl:if>
    </xsl:for-each></td>

转换 XSLT 1.0 https://xsltfiddle.liberty-development.net/eiZQaEZ/1