2010-12-27 12 views
1

私はこのような標準的なメタタグがあります。私はこのような新しいノードに変換したいxpathを使用して属性名の値を設定できますか?

<meta name="desc" content="test"/> 

<xsl:template match="meta"> 
<content> 
    <xsl:attribute name="test"/> 
</content> 
</xsl:template> 

は、属性名として「テスト」を交換する方法はありますがwithとxpath式?どういうわけか、メタタグの@nameを使用できますか?

答えて

3

として属性を持つ名およびXPath 表現を「テスト」を交換する方法はありますか?

はい、のような属性値テンプレートを使用します。

編集:は、このスタイルシートより明確にする:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="meta"> 
     <content> 
      <xsl:attribute name="{@name}"> 
       <xsl:value-of select="@content"/> 
      </xsl:attribute> 
     </content> 
    </xsl:template> 
</xsl:stylesheet> 

出力:

<content desc="test" /> 

編集: Dimitreの推測に続いて、あなたが望むならば

<content name="desc">test</content> 

使用このスタイルシート:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="meta"> 
     <content name="{@name}"> 
      <xsl:value-of select="@content"/> 
     </content> 
    </xsl:template> 
</xsl:stylesheet> 
+0

のxsl:価値の@nameは、名前の名前を返します。私がname = "{@ name}"に変更した場合、それはnullです。変数に値を格納しようとしましたが、値の型では動作しますが、name属性の式としては機能しません。 – spyderman4g63

+0

@ spyderman4g63:更新を確認してください。 –

+0

@Alejandro:OPが ' ' –

関連する問題