2009-10-28 24 views
5

mam to XML:Jak uzyskać wartość atrybutu elementu głównego w XSLT?

<?xml version="1.0" encoding="utf-8" ?> 
<IMPORT mode="FULL"> 
    .... 
</IMPORT> 

Próbuję przekonwertować go z poniższej XSLT stylów:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <xsl:element name="import"> 
     <xsl:attribute name="mode"> 
     <xsl:value-of select="@mode"/> 
     </xsl:attribute> 
      .... 
     </xsl:element> 
    </xsl:template> 

Moim problemem jest to, że następujący wiersz nie wydaje się działać:

<xsl:value-of select="@mode"/> 

Ponieważ otrzymuję tylko

<import mode=""> 

zamiast spodziewanych:

<import mode="FULL"> 

Wszelkie wskazówki?

Odpowiedz

7

Spróbuj użyć <xsl:value-of select="IMPORT/@mode"/>

+0

dziękuję wszystkim za odpowiedzi – user198063

8

Nie jesteś rzeczywiście na elemencie IMPORT.

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
    <xsl:apply-templates select="IMPORT"/> 
    </xsl:template> 
    <xsl:template match="IMPORT"> 
    <xsl:element name="import"> 
     <xsl:attribute name="mode"> 
     <xsl:value-of select="@mode"/> 
     </xsl:attribute> 
     ....  
    </xsl:element> 
    </xsl:template> 
1

Spróbuj tego:

<xsl:template match="IMPORT"> 
    <xsl:element name="import"> 
     <xsl:attribute name="mode"> 
      <xsl:value-of select="@mode"/> 
      </xsl:attribute> 
    </xsl:element> 
</xsl:template> 
Powiązane problemy