xsl 1,0, сумма мюнхенского поля для суммирования атрибутов количества на составной ключ

Я столкнулся с той же проблемой. Я выбрал шаблон «Пустой» MVC-проекта и получал ту же ошибку снова и снова.

Я попытался выбрать шаблон проекта MVC и получил ту же ошибку.

Выполнение небольшого количества поисковых запросов показало, что причиной возникновения проблемы может быть перепутанный файл конфигурации хоста приложения IIS express. У меня был только один сайт, настроенный в IIS express, и я попытался выполнить его из командной строки. Вот когда он показал мне ошибку в файле applicationHostConfig IIS express, включая номер строки, где была ошибка. Я играл с файлом в прошлом и добавил сайт без указания имени.

Фиксирование этой проблемы помогло мне решить.

0
задан Mike Dole 16 January 2019 в 18:43
поделиться

2 ответа

Вы неправильно используете символ /. Попробуйте это так:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:iws="http://vsystems.com/WS/StockAdjustments"
exclude-result-prefixes="iws">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:key name="k1" match="iws:StockAdjustment" use="concat(@Article, '|', @Status)"/>

<xsl:template match="/iws:StockAdjustments">
    <xsl:copy> 
        <xsl:for-each select="iws:StockAdjustment[generate-id()=generate-id(key('k1', concat(@Article,'|',@Status))[1])]">
            <xsl:copy>
                <xsl:copy-of select="@Article"/>
                <QTY_EXPE>
                    <xsl:value-of select="sum(key('k1', concat(@Article,'|',@Status))/@Quantity)" />
                </QTY_EXPE>
            </xsl:copy>
        </xsl:for-each>
    </xsl:copy>
</xsl:template>

</xsl:stylesheet>

Результат не тот, который вы опубликовали, но я пошел с вашей попыткой. В любом случае суммы верны.

0
ответ дан michael.hor257k 16 January 2019 в 18:43
поделиться
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    version="1.0" xmlns:mn="http://vsystems.com/WS/StockAdjustments">
    <xsl:strip-space elements="*"/>
    <xsl:output indent="yes" />
    <xsl:template match="mn:StockAdjustments">
      <xsl:copy>
          <xsl:apply-templates/>
      </xsl:copy>
    </xsl:template>

    <xsl:template match="mn:StockAdjustment[@Status = ''][1]">
        <xsl:copy> 
            <xsl:if test="@Article">
                <xsl:attribute name="Article">
                    <xsl:value-of select="@Article"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Client">
                <xsl:attribute name="Client">
                    <xsl:value-of select="@Client"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Status">
                <xsl:attribute name="Status">
                    <xsl:value-of select="@Status"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Unit">
                <xsl:attribute name="Unit">
                    <xsl:value-of select="@Unit"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Status = ''">
                <xsl:attribute name="Quantity">
                    <xsl:value-of select="sum(//mn:StockAdjustment[@Status = '']/@Quantity)"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@ReasonCode">
                <xsl:attribute name="ReasonCode">
                    <xsl:value-of select="@ReasonCode"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Batch">
                <xsl:attribute name="Batch">
                    <xsl:value-of select="@Batch"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@HostLocation">
                <xsl:attribute name="HostLocation">
                    <xsl:value-of select="@HostLocation"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>
    <xsl:template match="mn:StockAdjustment[@Status = 'QUARANTAINE'][1]">
        <xsl:copy>
            <xsl:if test="@Article">
                <xsl:attribute name="Article">
                    <xsl:value-of select="@Article"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Client">
                <xsl:attribute name="Client">
                    <xsl:value-of select="@Client"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Status">
                <xsl:attribute name="Status">
                    <xsl:value-of select="@Status"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Unit">
                <xsl:attribute name="Unit">
                    <xsl:value-of select="@Unit"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Status = 'QUARANTAINE'">
                <xsl:attribute name="Quantity">
                    <xsl:value-of select="sum(//mn:StockAdjustment[@Status = 'QUARANTAINE']/@Quantity)"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@ReasonCode">
                <xsl:attribute name="ReasonCode">
                    <xsl:value-of select="@ReasonCode"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@Batch">
                <xsl:attribute name="Batch">
                    <xsl:value-of select="@Batch"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:if test="@HostLocation">
                <xsl:attribute name="HostLocation">
                    <xsl:value-of select="@HostLocation"/>
                </xsl:attribute>
            </xsl:if>
            <xsl:apply-templates/>
        </xsl:copy>
    </xsl:template>

</xsl:stylesheet> 
please check if it is suitable for you.
0
ответ дан imran 16 January 2019 в 18:43
поделиться
Другие вопросы по тегам:

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