Я использую XSLT для преобразования входного XML (payload.xml), используя значение из другого XML-файла (upc.xml).После преобразования payload.xml мне нужно обновить upc.xml с последним значением.
XSLT будет извлекать последний UPC из upc.xml с шагом 1, использовать новое значение для преобразования payload.xml, затем обновлять upc.xml новым значением
Этоoriginal payload.xml
<?xml version="1.0" encoding="UTF-8" ?>
<SSC>
<Payload>
<Item>
<Characteristics>
<CharacteristicCode>UPC</CharacteristicCode>
<AlphaValues>
<CharacteristicCode>UPC</CharacteristicCode>
<DiscreteValueAlphanumeric></DiscreteValueAlphanumeric>
</AlphaValues>
</Characteristics>
</Item>
</Payload>
</SSC>
Вот так выглядит upc.xml.Я сам создал этот файл, чтобы при необходимости изменить формат.
<UPC>
<LatestUPC>88912700985</LatestUPC>
<MinUPC>88912700980</MinUPC>
<MaxUPC>88912700987</MaxUPC>
</UPC>
Мой XSLT пока что.С помощью этого XSLT я могу получить и использовать последнюю версию UPC, но не могу обновить upc.xml
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:my="http://schema.infor.com/InforOAGIS/2"
xmlns:java="http://xml.apache.org/xslt/java"
exclude-result-prefixes="java my ">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:strip-space elements="*"/>
<xsl:variable name="latestupc" select="document('upc.xml')/UPC/LatestUPC"/>
<xsl:variable name="upc11" select="format-number($latestupc + 1,'#')"/>
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*[.!='']"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="*[.=''][not(@*[.!=''])]"/>
<xsl:template match="/SSC/Payload/Item/Characteristics[CharacteristicCode='UPC']/AlphaValues">
<AlphaValues>
<CharacteristicCode>UPC</CharacteristicCode>
<DiscreteValueAlphanumeric>
<xsl:value-of select="$upc11"/>
</DiscreteValueAlphanumeric>
</AlphaValues>
</xsl:template>
</xsl:stylesheet>
. С текущим результатом payload.xml выглядит хорошо, но upc.xml не обновляется.Последняя версия UPC должна быть обновлена до 88912700986
<?xml version="1.0" encoding="UTF-8"?>
<SSC>
<Payload>
<Item>
<Characteristics>
<CharacteristicCode>UPC</CharacteristicCode>
<AlphaValues>
<CharacteristicCode>UPC</CharacteristicCode>
<DiscreteValueAlphanumeric>88912700986</DiscreteValueAlphanumeric>
</AlphaValues>
</Characteristics>
</Item>
</Payload>
</SSC>
Любое предложение?