2013-02-21 14 views
8

Tôi đang có tệp xml giống như thế này.Cách kiểm tra tên nút xml bằng cách sử dụng <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> 

Bây giờ trong xsl của tôi, tôi phải kiểm tra xem thẻ là <Text> hoặc <Radio> và tạo <input> thẻ dựa trên kết quả đó.

Tôi có thể làm điều gì bằng cách sử dụng <xsl:if> không? Giống như <xsl:if test = 'node = <Text>'>

Trả lời

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

Tuy nhiên, có những cách tiếp cận khác có thể tốt hơn:

Một là sử dụng một mẫu cho mặt hàng này; công cụ XSLT sẽ tự động thực hiện kiểm tra, nếu bạn muốn xem xét nó theo cách đó.

<xsl:template match="Form"> 

khác là sử dụng các self:: trục

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