juls_pro_37: XSLT 1.0 neuen Knoten mit Unterpunkte erstellen

Beitrag lesen

Hi, ach das war mein Fehler. Hatte ich total übersehen und in meinem File falsch angeführt, das mit dem Item.

Ich habe es so gelöst und komme auf das gewünschte Ergebnis, aber es gibt sicher wieder einen leichteren Weg... :)

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SALESINVOICE>
<HeaderInformation>
<InvoiceDate>20200707</InvoiceDate>
<InvoiceNumber>201028006</InvoiceNumber>
</HeaderInformation>
<LineInformation>
<Item>
<LineNum>1</LineNum>
<CustomerPurchaseOrder>test1</CustomerPurchaseOrder>
<TotalQuantity>33.00</TotalQuantity>
<LineText>
<Qualifier>INV</Qualifier>
<Text>Text1</Text>
</LineText>        		  
</Item>
</LineInformation>
<LineInformation>
<Item>
<LineNum>2</LineNum>
<CustomerPurchaseOrder>test2</CustomerPurchaseOrder>
<TotalQuantity>55.00</TotalQuantity>
<LineText>
<Qualifier>INV</Qualifier>
<Text>Text2</Text>
</LineText>        		  
</Item>
</LineInformation>
</SALESINVOICE>

XSLT:

     <!--delete LineText-->
  <xsl:template match="LineText" />
  
	<!-- Erstellt den Knoten ItemDeliveryInformation (mit Unterpunkten) wenn dieser fehlt -->
    <xsl:template match="Item[not(ItemDeliveryInformation)]">
        <xsl:copy>
			<xsl:apply-templates select="node() | @*" />
            <ItemDeliveryInformation>            
              <LineNumDeliveryNote>0</LineNumDeliveryNote>
              <PackingSlipId>
                <xsl:value-of select="CustomerPurchaseOrder"/>
              </PackingSlipId>
              <DeliveryDate>
                <xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceDate"/>
              </DeliveryDate>
              <DeliveredQuantity>
                <xsl:value-of select="TotalQuantity[. != 0.00]"/>
				<xsl:value-of select="TotalQuantity_Nachverrechnung[. != 0.00]"/>
              </DeliveredQuantity>
            </ItemDeliveryInformation>    
            <xsl:copy-of select="LineText"/>
         </xsl:copy>    	
    </xsl:template> 

Korrekt:

<?xml version="1.0" encoding="UTF-8"?>
<SALESINVOICE>
   <HeaderInformation>
      <InvoiceDate>20200707</InvoiceDate>
      <InvoiceNumber>201028006</InvoiceNumber>
   </HeaderInformation>
   <LineInformation>
      <Item>
         <LineNum>1</LineNum>
         <CustomerPurchaseOrder>test1</CustomerPurchaseOrder>
         <TotalQuantity>33.00</TotalQuantity>  
         <ItemDeliveryInformation>
            <LineNumDeliveryNote>0</LineNumDeliveryNote>
            <PackingSlipId>test1</PackingSlipId>
            <DeliveryDate>20200707</DeliveryDate>
            <DeliveredQuantity>33.00</DeliveredQuantity>
         </ItemDeliveryInformation>
         <LineText>
            <Qualifier>INV</Qualifier>
            <Text>Text1</Text>
         </LineText>
      </Item>
   </LineInformation>
   <LineInformation>
      <Item>
         <LineNum>2</LineNum>
         <CustomerPurchaseOrder>test2</CustomerPurchaseOrder>
         <TotalQuantity>55.00</TotalQuantity>
         <ItemDeliveryInformation>
            <LineNumDeliveryNote>0</LineNumDeliveryNote>
            <PackingSlipId>test2</PackingSlipId>
            <DeliveryDate>20200707</DeliveryDate>
            <DeliveredQuantity>55.00</DeliveredQuantity>
         </ItemDeliveryInformation>
         <LineText>
            <Qualifier>INV</Qualifier>
            <Text>Text2</Text>
         </LineText>
      </Item>
   </LineInformation>
</SALESINVOICE>