如何使用<xsl:if> </xsl:if>检查xml节点名称

时间:2013-02-21 06:13:21

标签: xml xslt

我有一个像这样的xml文件。

<RootTag>
    <Form>
        <Section>
             <Annex>
                <Group>
                        <Label value = "Name"></Label>
                        <Text Value = "Enter Name"></Text>
                </Group>
                <Group>
                        <Label value = "Gender"></Label>
                       <Radio Value = "Male||Female"></Text>
                </Group>
            </Annex>
        </Section>
    </Form>
</RootTag>

现在在我的xsl中,我必须检查标记是<Text>还是<Radio>并根据该结果生成<input>标记。

我可以使用<xsl:if>做到吗?与<xsl:if test = 'node = <Text>'>

一样

1 个答案:

答案 0 :(得分:20)

<xsl:if test="name() = 'Form'">

然而,还有其他方法可能更好:

一个是为这个项目使用模板;如果您想以这种方式查看,XSLT引擎将自动执行测试。

<xsl:template match="Form">

另一种方法是使用self::

<xsl:for-each select="self::Form">