Xslt生成Html <img/>标签。如何将XML节点值用作<img/>标记的src属性

时间:2010-09-02 09:34:29

标签: html xslt

我还在搜索,但我还没有找到执行此类操作的方法:

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中的文件名。

您有任何想法执行此操作吗?

3 个答案:

答案 0 :(得分:28)

您使用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 :(得分: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>

答案 2 :(得分: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>