xslt转换 - 匹配一个值并仅显示xml的这一部分

时间:2015-03-19 15:06:09

标签: xml xslt transformation

我对转型有疑问。我只会得到所有活动的门(active ='true')以及我想要的所有门都在我的结果中。

这是我的XML的一部分:

<Plant>
        <PlantName>12</PlantName>
        <Gate name="12" active="false" AlwaysOn="true">

这是我的xslt:     

    <xsl:template match="text()" />
    <xsl:output method="xml" indent="yes" />

    <xsl:template match="/">
            <xsl:for-each select="//Plant">
                <Plant>
                    <PlantName>
                        <xsl:value-of select="PlantName"></xsl:value-of>
                    </PlantName>
                    <xsl:for-each select="Gate">
                        <xsl:copy-of select="../Name"></xsl:copy-of>
                        <xsl:if match="../../Gate[@active='true']">
                            <xsl:copy-of select="."></xsl:copy-of>
                        </xsl:if>
                    </xsl:for-each>
                </Plant>
            </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

在我的结果中,我获得了所有门(也是主动='假')。有人可以告诉我这里有什么问题,请:)

提前致谢。

的BRs 哈特曼

1 个答案:

答案 0 :(得分:0)

尝试

<xsl:if test="@active='true'">