Xslt генерирует HTML-теги <IMG>. Как использовать значение узла XML в качестве атрибута src для тегов <IMG> - PullRequest
9 голосов
/ 02 сентября 2010

Я все еще ищу, но я еще не нашел способ выполнить что-то вроде этого:

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> текстовое значение - это имя файла, которое должно быть вставлено в строку src_attribute_to_be_read_from_the_xml_file.jpg при обработке этим файлом Xslt.

Есть ли у вас идеи сделать это?

Ответы [ 3 ]

28 голосов
/ 02 сентября 2010

Вы используете xsl:attribute:

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

Можно также использовать

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

В соответствии со спецификацией это называется шаблон значения атрибута и должен работать всегда (т.е. оба XSLT 1.0 и 2.0).Ницца.Теперь я тоже кое-чему научился.

1 голос
/ 14 декабря 2014

В качестве альтернативы вы можете использовать шаблон 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 голосов
/ 18 февраля 2018

И если вы хотите добавить атрибуты height, width и alt, вы можете сделать это следующим образом:

         <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...