2009-10-28 23 views
5

私が持っているこのXMLXSLTのルート要素の属性の値を取得する方法は?

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

私は、次のXSLTスタイルシートでそれを変換しようとしている:

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

私の問題は、次の行が動作するようには思えないということです。

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

私が得るにのみ

代わりに、期待の
<import mode=""> 

<import mode="FULL"> 

どれ手がかりは?

答えて

7

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

+0

は、あなたの答えのためのあなたのすべてに感謝 – user198063

8

あなたは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

これを試してみてください:

<xsl:template match="IMPORT"> 
    <xsl:element name="import"> 
     <xsl:attribute name="mode"> 
      <xsl:value-of select="@mode"/> 
      </xsl:attribute> 
    </xsl:element> 
</xsl:template> 
関連する問題