2010-09-02 143 views
8

我還在尋找,但我還沒有發現尚未執行類似這樣的方式:Xslt生成Html <IMG>標籤。如何使用XML節點值作爲SRC屬性爲<IMG>標籤

xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <!-- some other templates --> 
    <xsl:template match="IMAGE"> 
     <img src="src_attribute_to_be_read_from_the_xml_file.jpg"/> 
    </xsl:template>  
</xsl:stylesheet> 

在我的XML <IMAGE>標籤,文本值是在由此Xslt文件處理時應插入字符串src_attribute_to_be_read_from_the_xml_file.jpg中的文件名。

你有什麼想法來執行此操作嗎?

回答

26

您使用xsl:attribute

<img> 
    <xsl:attribute name="src"> 
     <xsl:value-of select="you path here"/> 
    </xsl:attribute> 
</img> 

這也應該是可以使用

<img src="{some expression here}" /> 

按照specification這就是所謂的屬性值模板,應始終工作(即兩個XSLT 1.0和2.0)。尼斯。現在我也學到了一些東西。

+1

thx xsl:屬性完成這項工作。和thx有關「{$ some-variable-here}」的信息,我應該檢查以瞭解它的工作方式。 – 2010-09-02 09:51:05

+0

它應該。我修改了我的答案。 – musiKk 2010-09-02 09:53:50

+1

@musikk和@Stephane Rolland:無論何時您可以使用文字結果元素和AVT,都可以使用它。它快速而緊湊。 – 2010-09-02 14:30:11

1

或者您可以使用XSL模板:

<xsl:template match="image"> 
<xsl:element name="IMG"> 
    <xsl:attribute name="src"> 
    <xsl:value-of select="your_path"/> 
    </xsl:attribute> 
    <xsl:attribute name="title"> 
    <xsl:value-of select="your_title"/> 
    </xsl:attribute > 
</xsl:element> 

0

如果你想添加的heightwidthalt屬性,那麼你可以做這樣的:

  <img> 
      <xsl:attribute name="src"> 
       <xsl:value-of select="picture"/> 
       </xsl:attribute> 
       <xsl:attribute name="title"> 
       <xsl:value-of select="pictureTitle"/> 
       </xsl:attribute > 
       <xsl:attribute name="alt"> 
       <xsl:value-of select="pictureTitle"/> 
       </xsl:attribute > 
       <xsl:attribute name="height"> 
       20 
       </xsl:attribute > 
       <xsl:attribute name="width"> 
       30 
       </xsl:attribute > 
     </img>