【发布时间】:2020-12-15 16:31:13
【问题描述】:
我正在尝试使用 xslt 选择节点的最大值,但它不起作用。该节点是 zordaSupplierCode 它是一个字母数字,似乎 max 函数不适用于字母数字。我也尝试过排序,但我使用的 xslt 没有输出。
有没有办法在 XSLT 中选择字母数字的最大值?这里我最大的价值应该是R837。
提前致谢。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<object>
<metadata>
<schemaVersion>5</schemaVersion>
<offset>415628</offset>
<processId>53e7baec-c73f-46d6-874f-62433bf2fbc6</processId>
<processDate>2020-11-25T01:50:39.997Z</processDate>
<processApp>siriusPRT-uat</processApp>
<version>1</version>
<technicalId>05605578001906_PT_PT502410949</technicalId>
<status>INTEGRATED</status>
<group>pt</group>
</metadata>
<data>
<tradeItemUnitDescriptorCode>BASE_UNIT_OR_EACH</tradeItemUnitDescriptorCode>
<gtin>05605578001906</gtin>
<additionalTradeItemIdentification>
<additionalTradeItemIdentificationTypeCode>CUG</additionalTradeItemIdentificationTypeCode>
<additionalTradeItemIdentificationValue>00141592</additionalTradeItemIdentificationValue>
</additionalTradeItemIdentification>
<additionalTradeItemIdentification>
<additionalTradeItemIdentificationTypeCode>GTIN_12</additionalTradeItemIdentificationTypeCode>
<additionalTradeItemIdentificationValue>560557800190</additionalTradeItemIdentificationValue>
</additionalTradeItemIdentification>
<additionalTradeItemIdentification>
<additionalTradeItemIdentificationTypeCode>PLU</additionalTradeItemIdentificationTypeCode>
<additionalTradeItemIdentificationValue>2880260000000</additionalTradeItemIdentificationValue>
</additionalTradeItemIdentification>
<zordaDedicatedInformation>
<tradeItemStatus>A</tradeItemStatus>
<zordaSupplyChain>
<variant>
<isMainSupplyChain>false</isMainSupplyChain>
</variant>
<zordaSupplierCode>R837</zordaSupplierCode>
<zordaSupplierCode>P837</zordaSupplierCode>
<zordaSupplierCode>B837</zordaSupplierCode>
</zordaSupplyChain>
<mainGtin>56035500010678</mainGtin>
<cug>00141592</cug>
<isMainGtin>true</isMainGtin>
<countryOfRecordCountryCode>PT</countryOfRecordCountryCode>
<zordaClassification>
<groupingCode>PT</groupingCode>
<code>05</code>
<hierarchyType>Product</hierarchyType>
<level>1</level>
<variantCode>PT</variantCode>
<hierarchyCode>REF</hierarchyCode>
<concatenatedCode>05</concatenatedCode>
<description>
<pt>PF</pt>
</description>
<applicationDate>1996-10-15T00:00:00+02:00</applicationDate>
</zordaClassification>
<zordaClassification>
<groupingCode>PT</groupingCode>
<code>0508</code>
<hierarchyType>Product</hierarchyType>
<level>2</level>
<variantCode>PT</variantCode>
<hierarchyCode>REF</hierarchyCode>
<concatenatedCode>050508</concatenatedCode>
<description>
<pt>FRUTAS E VERDURAS</pt>
</description>
<applicationDate>1996-10-15T00:00:00+02:00</applicationDate>
</zordaClassification>
<zordaClassification>
<groupingCode>PT</groupingCode>
<code>050810</code>
<hierarchyType>Product</hierarchyType>
<level>3</level>
<variantCode>PT</variantCode>
<hierarchyCode>REF</hierarchyCode>
<concatenatedCode>050508050810</concatenatedCode>
<description>
<pt>CASTANHAS</pt>
</description>
<applicationDate>1996-10-15T00:00:00+02:00</applicationDate>
</zordaClassification>
<zordaClassification>
<groupingCode>PT</groupingCode>
<code>05081001</code>
<hierarchyType>Product</hierarchyType>
<level>4</level>
<variantCode>PT</variantCode>
<hierarchyCode>REF</hierarchyCode>
<concatenatedCode>05050805081005081001</concatenatedCode>
<description>
<pt>CASTANHAS</pt>
</description>
<applicationDate>1996-10-15T00:00:00+02:00</applicationDate>
</zordaClassification>
<isMainSupplier>false</isMainSupplier>
<companyInternalIdentification>PT502410949</companyInternalIdentification>
<isTradeItemAuchanBrand>false</isTradeItemAuchanBrand>
</zordaDedicatedInformation>
<isTradeItemAService>false</isTradeItemAService>
<tradeItemSynchronisationDates>
<effectiveDateTime>1996-10-15T00:00:00+02:00</effectiveDateTime>
<discontinuedDateTime>2100-12-31T00:00:00+02:00</discontinuedDateTime>
<lastChangeDateTime>2020-11-24T23:26:28+02:00</lastChangeDateTime>
</tradeItemSynchronisationDates>
<isTradeItemABaseUnit>true</isTradeItemABaseUnit>
<isTradeItemADespatchUnit>false</isTradeItemADespatchUnit>
<isTradeItemAConsumerUnit>true</isTradeItemAConsumerUnit>
<tradeItemInformation>
<extension>
<variableTradeItemInformationModule>
<variableTradeItemInformation>
<variableTradeItemTypeCode>LOOSE</variableTradeItemTypeCode>
<isTradeItemAVariableUnit>false</isTradeItemAVariableUnit>
</variableTradeItemInformation>
</variableTradeItemInformationModule>
<deliveryPurchasingInformationModule>
<deliveryPurchasingInformation>
<endAvailabilityDateTime>2100-12-31T00:00:00+02:00</endAvailabilityDateTime>
<orderingUnitOfMeasure>MM</orderingUnitOfMeasure>
</deliveryPurchasingInformation>
</deliveryPurchasingInformationModule>
<dutyFeeTaxInformationModule>
<dutyFeeTaxInformation>
<dutyFeeTaxTypeCode>01</dutyFeeTaxTypeCode>
</dutyFeeTaxInformation>
</dutyFeeTaxInformationModule>
<tradeItemMeasurementsModule>
<tradeItemMeasurements>
<tradeItemWeight>
<grossWeight>
<measurementValue>0.001</measurementValue>
<measurementUnitCode>KGM</measurementUnitCode>
</grossWeight>
<netWeight>
<measurementValue>1.0E-6</measurementValue>
<measurementUnitCode>KGM</measurementUnitCode>
</netWeight>
<drainedWeight>
<measurementValue>1.0E-6</measurementValue>
<measurementUnitCode>KGM</measurementUnitCode>
</drainedWeight>
</tradeItemWeight>
<netContent>
<measurementValue>0</measurementValue>
<measurementUnitCode>EA</measurementUnitCode>
</netContent>
</tradeItemMeasurements>
</tradeItemMeasurementsModule>
<salesInformationModule>
<salesInformation>
<priceComparisonMeasurement>
<measurementValue>1</measurementValue>
<measurementUnitCode>GRM</measurementUnitCode>
</priceComparisonMeasurement>
<sellingUnitOfMeasure>EA</sellingUnitOfMeasure>
</salesInformation>
</salesInformationModule>
<tradeItemDescriptionModule>
<tradeItemDescriptionInformation>
<tradeItemDescription>
<pt>CASTANHA 50/60:1KG </pt>
</tradeItemDescription>
<brandNameInformation>null</brandNameInformation>
</tradeItemDescriptionInformation>
</tradeItemDescriptionModule>
<placeOfItemActivityModule>
<placeOfProductActivity>
<productActivityDetails>
<productActivityTypeCode>LAST_PROCESSING</productActivityTypeCode>
</productActivityDetails>
<countryOfOriginStatement>
<pt>Portugal</pt>
</countryOfOriginStatement>
<countryOfOrigin>
<countryCode>620</countryCode>
</countryOfOrigin>
</placeOfProductActivity>
</placeOfItemActivityModule>
<packagingMarkingModule>
<packagingMarking>
<isPriceOnPack>false</isPriceOnPack>
<hasBatchNumber>false</hasBatchNumber>
</packagingMarking>
</packagingMarkingModule>
</extension>
</tradeItemInformation>
</data>
</object>
</root>
<?xml version="1.0" encoding="UTF-8"?>
<!--Changelog :
0.1.0 @SJA : Initial verision
-->
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:param name="country" select="pt"/>
<xsl:param name="IsPrimaryOne" select="1"/>
<xsl:param name="IsPrimaryTwo" select="0"/>
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match="/">
<xsl:for-each select="root/object/data/additionalTradeItemIdentification/additionalTradeItemIdentificationTypeCode">
<xsl:if test="contains(.,'GTIN_')">
<ProductCode><xsl:value-of select="../../zordaDedicatedInformation/cug"/></ProductCode>
<Delimited>;</Delimited>
<xsl:choose>
<xsl:when test="../../zordaDedicatedInformation/zordaSupplyChain/variant/isMainSupplyChain/text()='true'">
<SupplierCode><xsl:value-of select="../../zordaDedicatedInformation/zordaSupplyChain/zordaSupplierCode"/></SupplierCode>
</xsl:when>
<xsl:otherwise>
<SupplierCode><xsl:value-of select="max(../../zordaDedicatedInformation/zordaSupplyChain/zordaSupplierCode)"/></SupplierCode>
</xsl:otherwise>
</xsl:choose>
<Delimited>;</Delimited>
<EanCode><xsl:value-of select="../additionalTradeItemIdentificationValue"/></EanCode>
<Delimited>;</Delimited>
<xsl:choose>
<xsl:when test="../../zordaDedicatedInformation/isMainGtin/text()='true'">
<IsPrimary><xsl:value-of select="$IsPrimaryOne"/></IsPrimary>
</xsl:when>
<xsl:otherwise>
<IsPrimary><xsl:value-of select="$IsPrimaryTwo"/></IsPrimary>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="position() != last()"><xsl:text> </xsl:text></xsl:if>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
【问题讨论】:
-
您对字母数字值的“最大值”的定义是什么?
-
这是否回答了您的问题:stackoverflow.com/questions/777930/…?
-
例如B222大于A222
-
一个例子不构成规则。