2013-02-21 2 views
8

Ho un file xml che funziona in questo modo.Come controllare i nomi dei nodi xml utilizzando <xsl:if>

<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> 

Ora nel mio xsl, devo controllare se il tag è <Text> o <Radio> e generare <input> tag in base a quel risultato.

C'è qualche cosa che posso fare usando <xsl:if>? Come <xsl:if test = 'node = <Text>'>

risposta

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

Tuttavia, ci sono altri approcci che possono essere meglio:

Uno è quello di utilizzare un modello per questo articolo; il motore XSLT eseguirà automaticamente il test, se si vuole guardarlo in quel modo.

<xsl:template match="Form"> 

altro è di usare il self:: asse

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