6

xslt に値があり、それを p タグの data-time 属性に入れる必要があります

 <xsl:value-of select="current()/eventTime" />
 <p class="time" data-time="1">Duration: <xsl:value-of select="current()/eventTime" /> hour(s)</p>

これによりエラーが発生します

<p class="time" data-time="<xsl:value-of select="current()/eventTime" />">Duration: <xsl:value-of select="current()/eventTime" /> hour(s)</p>

どうすればこれを達成できますか?

4

3 に答える 3

20

「属性値テンプレート」はあなたの友達です

<p class="time" data-time="{current()/eventTime}">
   Duration: <xsl:value-of select="current()/eventTime" /> hour(s)
</p> 

中括弧は、これが属性値テンプレートであることを示しており、評価される式が含まれています。

別の方法としてxsl:attribute要素を使用することに注意してください。

<p class="time">
   <xsl:attribute name="data-time">
       <xsl:value-of select="current()/eventTime" />
   </xsl:attribute>
   Duration: <xsl:value-of select="current()/eventTime" /> hour(s)
</p> 

ただし、これはそれほどエレガントではありません。動的な属性名が必要な場合にのみ、このようにする必要があります。

于 2012-09-21T11:25:02.110 に答える
0

このようなもの?

<xsl:variable name="eventtime" select="current()/eventTime"/>

<xsl:element name="p">
  <xsl:attribute name="class">time</xsl:attribute>
  <xsl:attribute name="data-time">
     <xsl:value-of select="$eventtime" />
  </xsl:attribute>
  Duration: 
  <xsl:value-of select="$eventtime" />
</xsl:element>
于 2012-09-21T11:36:02.230 に答える