Помогите разобраться с проблемой:
Вот часть кода, который есть сейчас (написан давно и не мной ;-( ) Это тестовая версия, так что тут есть что-то прибито гвоздями, что-то не выводится, но этого достаточно, чтобы посмотреть, что происходит.
тут явно отбрасываются все узлы, где KONDART начинается с MW. Очень бы хотелось, чтобы если для данного артикула и единицы измерения нет ничего, кроме MW, в конце (ну или не в конце) выводилось то же самое, что и при обработке других кодов.
Code:
<xsl:for-each select="/WP_PLU03/IDOC/E1WPA01/FILIALE">
<xsl:variable name="FILEALE" select=".."/>
<xsl:for-each select="$FILEALE/ARTIKELNR">
<xsl:variable name="ARTIKELNR" select=".."/>
<xsl:for-each select="$ARTIKELNR[substring(E1WPA04/KONDART, 1, 2) != 'MW']/POSME">
<xsl:variable name="POSME" select=".."/>
<xsl:for-each select="$POSME/E1WPA04[substring(KONDART, 1, 2) != 'MW']">
<xsl:variable name="condition" select="."/>
<ns0:arPricesEl>
<ns0:currency>
<xsl:value-of select="$condition/E1WPA05/CURRENCY"/>
</ns0:currency>
<ns0:department>
<xsl:value-of select="$POSME/FILIALE"/>
</ns0:department>
<ns0:startDate>
<xsl:value-of select="$condition/BEGINDATUM"/>
</ns0:startDate>
<ns0:endDate>
<xsl:value-of select="$condition/ENDDATUM"/>
</ns0:endDate>
<ns0:type>
<xsl:value-of select="$condition/KONDART"/>
</ns0:type>
<ns0:goodCode>
<xsl:value-of select="$POSME/ARTIKELNR"/>
</ns0:goodCode>
<ns0:measureIso>
<xsl:value-of select="$POSME/POSME"/>
</ns0:measureIso>
<ns0:ndsRate>
<xsl:choose>
<xsl:when test="$POSME/E1WPA07/MWSKZ = 'B1'"><xsl:text>10</xsl:text></xsl:when>
<xsl:when test="$POSME/E1WPA07/MWSKZ = 'B2'"><xsl:text>18</xsl:text></xsl:when>
<xsl:when test="$POSME/E1WPA07/MWSKZ = 'Z3'"><xsl:text>0</xsl:text></xsl:when>
<xsl:when test="$POSME/E1WPA07/MWSKZ = 'A4'"><xsl:text>18</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>18</xsl:text></xsl:otherwise>
</xsl:choose>
</ns0:ndsRate>
<ns0:price>
<xsl:value-of select="round($condition/E1WPA05/KONDWERT * 100)"/>
</ns0:price>
</ns0:arPricesEl>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
PS: Общий смысл в том, чтобы не терялись артикулы, у которых есть только настройка MW, но нет других записей. Но если есть другие записи - настройка MW не нужна. Казалось бы, чего проще: выводить все, что есть и пусть целевая система разбирается, но при больших объемах выгрузки, растет объем передаваемой информации. А это не желательно.