Шаблон XSL может соответствовать в *ВСЕ* режимы?

Интересно, что я просто работал над чем-то другим, где это возникло ...

Чтобы указать пункт назначения, необходимо использовать Range.Copy, а не Sheet.Copy:

copySheet.UsedRange.Copy(currBook.Worksheets[1].Range["A1"]); 

Если пункт назначения не может быть указан, то Excel помещает данные в новую рабочую книгу.

14
задан Dirk Vollmar 26 January 2009 в 12:29
поделиться

3 ответа

Предопределенный режим: #all (только доступный в XSLT 2.0 однако).

править: тиражирование совместно использованного поведения режима с 1,0

<xsl:template match="/">
    <xsl:variable name="choice" select="'a'"/><!-- input seed here -->
    <xsl:choose>
        <xsl:when test="$choice='a'">
            <xsl:apply-templates mode="a"/>
        </xsl:when>
        <xsl:when test="$choice='b'">
            <xsl:apply-templates mode="b"/>
        </xsl:when>
    </xsl:choose>
</xsl:template>

<xsl:template match="*" mode="a">
    [A]
    <xsl:apply-templates />
</xsl:template>

<xsl:template match="*" mode="b">
    [B]
    <xsl:apply-templates />
</xsl:template>

<xsl:template match="text()">
    [ALL]
</xsl:template>
7
ответ дан 1 December 2019 в 15:12
поделиться

Есть ли способ записать шаблон XSL 1.0, который соответствует во всех режимах

Да, чтобы сделать, этот должен следовать этим двум правилам:

  1. Запишите свой шаблон без атрибута режима.

  2. В узловатых шаблонах имеют <xsl:apply-templates> инструкция без атрибута режима, который приведет к шаблону в 1. выше того, чтобы быть выбранным для обработки

Это следует непосредственно от спецификации XSLT 1.0, которая говорит:

Если xsl:apply-templates элемент имеет a mode атрибут, затем это применяется только к тем шаблонным правилам от xsl:template элементы, которые имеют a mode атрибут с тем же значением; если xsl:apply-templates элемент не имеет a mode атрибут, затем это применяется только к тем шаблонным правилам от xsl:template элементы, которые не имеют a mode атрибут.

Подводить итог: Ряд обрабатывает по шаблону, каждый в различном режиме может все еще выйти <xsl:apply-templates> таким способом (описанный выше), так, чтобы тот же определенный, единственный шаблон был выбран для обработки в каждом случае.

2
ответ дан 1 December 2019 в 15:12
поделиться

Если Вы хотите иметь шаблонное соответствие во всех режимах затем, почему Вы используете режим? Если Вы не будете использовать режим затем, то шаблон будет использоваться все время. Причина режима состоит в том, чтобы условно сделать разные вещи с совпадающим типом данных. Кажется, что Вы хотите немодальный.

1
ответ дан 1 December 2019 в 15:12
поделиться
Другие вопросы по тегам:

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