Ok, so the XSLT works fine for one product, but if the xml file contains more than one product I get the same result repeated for every product.
I added an <xsl:for-each> loop, but it seems to pick up the first product every time.
How can I get one <job> for each product?
Incoming xml:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<order version="1.0" type="order" order-id="26779" status="1" external-order-id="Weborder 103591/105658/105660" external-cost-center="" created-date="11/08/2019 16:15:35" order-date="11/08/2019 16:15:35" user-id="a.b@c.se" customer-id="2" customer-name="kundnamn" external-customer-id="2036" organization-id="081646" vat-id="" sales-person="" project-manager="CSR" currency="SEK" portal-id="2" portal-name="Portalnamn">
<information />
<fields>
<field name="Reference">Kund</field>
<field name="extend">True</field>
</fields>
<customer>
<fields>
<field name="API-nyckel">xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx</field>
<field name="Systemkod">haikom</field>
</fields>
</customer>
<buyer>
<company>Företag</company>
<name>Namn</name>
<email />
<phone />
<mobilephone />
</buyer>
<payment type="Invoice">
<billingaddress e-invoice-code="" email="">
<name>Namn</name>
<address1>Adress</address1>
<address2 />
<address3 />
<city>Stad</city>
<zipcode>Postnr</zipcode>
<country>Sweden</country>
<countrycode>SE</countrycode>
<state />
</billingaddress>
</payment>
<items>
<item type="Template" item-number="201" name="Visitkort 4+4 (Motiv 1)" account-code="" external-cost-center="" quantity="250" unit-price="x,xxx" unit="pcs" total-price="xxx,xxx" vat-code="1" vat="25,00" weight="0,337" template-id="159ac08b349a4b8390693fb952e0e694">
<information />
<deliveries>
<delivery delivery-id="2b102f364c214f96b78f712de7417275" quantity="250" />
</deliveries>
<jobs>
<job id="5008" />
</jobs>
</item>
<item type="Template" item-number="201" name="Visitkort 4+4 (Motiv 2)" account-code="" external-cost-center="" quantity="250" unit-price="x,xxxx" unit="pcs" total-price="xxx,xxx" vat-code="1" vat="25,00" weight="0,337" template-id="cd6955be74b044cb82ae61a6f8df5e29">
<information />
<deliveries>
<delivery delivery-id="2b102f364c214f96b78f712de7417275" quantity="250" />
</deliveries>
<jobs>
<job id="5009" />
</jobs>
</item>
<item type="Template" item-number="201" name="Visitkort 4+4 (Motiv 3)" account-code="" external-cost-center="" quantity="250" unit-price="x,xxxx" unit="pcs" total-price="xxx,xxx" vat-code="1" vat="25,00" weight="0,337" template-id="e048f34e3a5a458aae2fe1dc0f805eb6">
<information />
<deliveries>
<delivery delivery-id="2b102f364c214f96b78f712de7417275" quantity="250" />
</deliveries>
<jobs>
<job id="5010" />
</jobs>
</item>
<item type="Freight" item-number="Frakt" name="Frakt" account-code="bring_parcel" external-cost-center="" quantity="1" unit-price="xxx" unit="pcs" total-price="xxx" vat-code="1" vat="25,00" weight="0" template-id="">
<information />
<deliveries>
<delivery delivery-id="2b102f364c214f96b78f712de7417275" quantity="1" />
</deliveries>
<jobs />
</item>
</items>
<jobs>
<job id="5008" type="print" status="1" name="Visitkort 4+4 (Motiv 1)" job-name="Motiv 1">
<information />
<fields>
<field name="climatecompensation">Klimatkompenserad</field>
</fields>
<producttype>indigo_kontorstrycksaker_visitkort_korrespondenskort</producttype>
<productionunit>a3_print</productionunit>
<quantity>250</quantity>
<instructions />
<part type="inlay">
<pages>2</pages>
<sides>TwoSidedHeadToHead</sides>
<color>CMYK</color>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
<media item-number="Indigo-0241" weight="300" dimension="460x320" grain-direction="ShortEdge">Papperskvalitet</media>
<nup>24</nup>
</part>
</job>
<job id="5009" type="print" status="1" name="Visitkort 4+4 (Motiv 2)" job-name="Motiv 2">
<information />
<fields>
<field name="climatecompensation">Klimatkompenserad</field>
</fields>
<producttype>indigo_kontorstrycksaker_visitkort_korrespondenskort</producttype>
<productionunit>a3_print</productionunit>
<quantity>250</quantity>
<instructions />
<part type="inlay">
<pages>2</pages>
<sides>TwoSidedHeadToHead</sides>
<color>CMYK</color>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
<media item-number="Indigo-0241" weight="300" dimension="460x320" grain-direction="ShortEdge">Papperskvalitet</media>
<nup>24</nup>
</part>
</job>
<job id="5010" type="print" status="1" name="Visitkort 4+4 (Motiv 3)" job-name="Motiv 3">
<information />
<fields>
<field name="climatecompensation">Klimatkompenserad</field>
</fields>
<producttype>indigo_kontorstrycksaker_visitkort_korrespondenskort</producttype>
<productionunit>a3_print</productionunit>
<quantity>250</quantity>
<instructions />
<part type="inlay">
<pages>2</pages>
<sides>TwoSidedHeadToHead</sides>
<color>CMYK</color>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
<media item-number="Indigo-0241" weight="300" dimension="460x320" grain-direction="ShortEdge">Papperskvalitet</media>
<nup>24</nup>
</part>
</job>
</jobs>
<deliveries>
<delivery id="2b102f364c214f96b78f712de7417275" shipping-method="Frakt">
<name>Kundnamn</name>
<address1>Adress</address1>
<address2 />
<address3 />
<city>Stad</city>
<zipcode>Postnr</zipcode>
<country>Sweden</country>
<countrycode>SE</countrycode>
<state />
<requesteddeliverydate>11/13/2019 00:00:00</requesteddeliverydate>
<contactname>Mottagare</contactname>
<contactemail>a.b@c.se</contactemail>
<contactphone />
<contactmobilephone />
<deliveryinformation />
<transportinstructions />
<isexpress>False</isexpress>
<fields />
<consignments />
</delivery>
</deliveries>
</order>
XSLT
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
exclude-result-prefixes="xs"
version="1.0">
<xsl:output method="xml" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<xsl:for-each select="//order/jobs/job">
<job>
<jobid>
<xsl:value-of select="//order/jobs/job/@id"/>
</jobid>
<jobname>
<xsl:value-of select="//order/jobs/job/@job-name"/>
</jobname>
<quantity>
<xsl:value-of select="//order/jobs/job/quantity"/>
</quantity>
<sides>
<xsl:value-of select="//order/jobs/job/part/sides"/>
</sides>
<finaldimension>
<xsl:value-of select="//order/jobs/job/part/finaldimension"/>
</finaldimension>
<printdimension>
<xsl:value-of select="//order/jobs/job/part/printdimension"/>
</printdimension>
</job>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Resulting xml
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<job>
<jobid>5008</jobid>
<jobname>Motiv 1</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
<job>
<jobid>5008</jobid>
<jobname>Motiv 1</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
<job>
<jobid>5008</jobid>
<jobname>Motiv 1</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
Desired result
Code: Select all
<?xml version="1.0" encoding="UTF-8"?>
<job>
<jobid>5008</jobid>
<jobname>Motiv 1</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
<job>
<jobid>5009</jobid>
<jobname>Motiv 2</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
<job>
<jobid>5010</jobid>
<jobname>Motiv 3</jobname>
<quantity>250</quantity>
<sides>TwoSidedHeadToHead</sides>
<finaldimension>90x50</finaldimension>
<printdimension>460x320</printdimension>
</job>
Even better if I can get one xml per <job>...
Thanks in advance
Enfocus Switch, Enfocus PitStop Server, Enfocus PDF Review, HP SmartStream& Kodak Prinergy with RBA
Offset 72x102, Offset Large Format, Digital Large Format and Digital print.