如何在忽略xml标记中的NULL值后按顺序获取position()

时间:2016-02-02 08:57:29

标签: xml xslt-1.0

当xml节点包含空值时,我在使用xslt在html中显示位置时遇到问题。 xml的部分在下面。预期的输出是:

    1: 45
    2: abc
    3: 1

    <a>45</a>
    <a>null</a>
    <a>abc</a>
    <a>null</a>
    <a>null</a>
    <a>1</a>

    Thanks in advance.

1 个答案:

答案 0 :(得分:0)

给出格式良好的输入,例如:

<root>
    <a>45</a>
    <a>null</a>
    <a>abc</a>
    <a>null</a>
    <a>null</a>
    <a>1</a>
</root>

你可以使用:

<xsl:template match="root">
    <xsl:for-each select="a[not(.='null')]">
        <xsl:value-of select="concat(position(), ': ', .)" />
        <br/>
    </xsl:for-each>
</xsl:template>

生产:

1: 45<br/>2: abc<br/>3: 1<br/>
HTML中的

将呈现为:

1: 45
2: abc
3: 1