xslt, как добавить атрибуты для копирования -

Вы должны переместить файл composer.phar (который загружается установочными скриптами) в каталог /usr/local/bin или /usr/bin

sudo mv composer.phar /usr/local/bin/composer

или

sudo mv composer.phar /usr/bin/composer
28
задан Ian Nelson 22 September 2011 в 12:23
поделиться

1 ответ

xsl:copy-of выполняет глубокое копирование выбранного узла, но не предоставляет возможности изменить его.

Вы захотите использовать xsl:copy, а затем добавить дополнительные узлы внутри. xsl:copy просто копирует атрибуты узла и пространства имен, но не обычные атрибуты и дочерние узлы, поэтому вам нужно убедиться, что вы apply-templates также протолкнете другие узлы. xsl:copy не имеет @select, он работает на текущем узле, поэтому, где бы вы ни применяли <xsl:copy-of select="/root/Algemeen/foto/node()" /> , вам нужно будет перейти на <xsl:apply-templates select="/root/Algemeen/foto/node()" /> и переместить логику img в шаблон.

Примерно так:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <result>
    <xsl:apply-templates select="/root/Algemeen/foto/img"/>
        </result>
    </xsl:template>

<!--specific template match for this img -->
    <xsl:template match="/root/Algemeen/foto/img">
      <xsl:copy>
            <xsl:attribute name="width">100</xsl:attribute>
            <xsl:apply-templates select="@*|node()" />
          </xsl:copy>
    </xsl:template>

<!--Identity template copies content forward -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet>
47
ответ дан Mads Hansen 28 November 2019 в 03:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: