tag:forum.selfhtml.org,2005:/self XSLT 1.0 neuen Knoten mit Unterpunkte erstellen – SELFHTML-Forum 2020-07-10T20:20:51Z https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773241#m1773241 juls_pro_37 2020-07-09T14:50:25Z 2020-07-09T14:51:02Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hi,</p> <p>benötige eine Prüfung ob unter "Item" der Unterpunkt "ItemDeliveryInformation" existiert.</p> <p>Wenn nein, soll dieser mit weiteren Unterpunkten erstellt werden.</p> <p>LineNumDeliveryNote = 0</p> <p>PackingSlipId = HeaderInformation/InvoiceNumber</p> <p>DeliveryDate = HeaderInformation/InvoiceDate</p> <p>DeliveredQuantity = von der entsprechenden Item die TotalQuantity</p> <p>XML:</p> <pre><code class="block"><?xml version="1.0" encoding="ISO-8859-1"?> <SALESINVOICE> <HeaderInformation> <InvoiceDate>20200615</InvoiceDate> <InvoiceNumber>201023815</InvoiceNumber> </HeaderInformation> <LineInformation> <Item> <LineNum>1</LineNum> <TotalQuantity>920.00</TotalQuantity> </Item> </LineInformation> <LineInformation> <Item> <LineNum>2</LineNum> <TotalQuantity>23.00</TotalQuantity> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <DeliveryDate>20200615</DeliveryDate> <DeliveredQuantity>23.00</DeliveredQuantity> </ItemDeliveryInformation> </Item> </LineInformation> </SALESINVOICE> </code></pre> <p>XSLT:</p> <pre><code class="block"> <xsl:template match="Item"> <xsl:copy-of select="."/> <xsl:if test="not(ItemDeliveryInformation)"> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId><xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceNumber"/></PackingSlipId> <DeliveryDate><xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceDate"/></DeliveryDate> <DeliveredQuantity><xsl:value-of select="hier soll die TotalQuantity der richtigen Item stehen, unterscheidet sich durch die LineNum"/></DeliveredQuantity> </ItemDeliveryInformation> </xsl:if> </xsl:template> </code></pre> <p>Korrekt:</p> <pre><code class="block"><?xml version="1.0" encoding="ISO-8859-1"?> <SALESINVOICE> <HeaderInformation> <InvoiceDate>20200615</InvoiceDate> <InvoiceNumber>201023815</InvoiceNumber> </HeaderInformation> <LineInformation> <Item> <LineNum>1</LineNum> <TotalQuantity>920.00</TotalQuantity> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId>LS264694</PackingSlipId> <DeliveryDate>20200615</DeliveryDate> <DeliveredQuantity>920.00</DeliveredQuantity> </ItemDeliveryInformation> </Item> </LineInformation> <LineInformation> <Item> <LineNum>2</LineNum> <TotalQuantity>23.00</TotalQuantity> <ItemDeliveryInformation> <LineNumDeliveryNote>1</LineNumDeliveryNote> <PackingSlipId>LS264694</PackingSlipId> <DeliveryDate>20200615</DeliveryDate> <DeliveredQuantity>23.00</DeliveredQuantity> </ItemDeliveryInformation> </Item> </LineInformation> </SALESINVOICE> </code></pre> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773242#m1773242 ThomasM 2020-07-09T15:35:14Z 2020-07-09T15:35:14Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hallo Julian,</p> <blockquote> <p>benötige eine Prüfung ob unter "Item" der Unterpunkt "ItemDeliveryInformation" existiert.</p> <p>Wenn nein, soll dieser mit weiteren Unterpunkten erstellt werden.</p> <p>LineNumDeliveryNote = 0</p> <p>PackingSlipId = HeaderInformation/InvoiceNumber</p> <p>DeliveryDate = HeaderInformation/InvoiceDate</p> <p>DeliveredQuantity = von der entsprechenden Item die TotalQuantity</p> </blockquote> <p>Das fängt wieder an, wild zu werden. Ich kann nur noch mutmaßen:</p> <pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Item[not(ItemDeliveryInformation)]<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>copy-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>LineNum<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>copy-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TotalQuantity<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>if</span> <span class="token attr-name">test</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>not(ItemDeliveryInformation)<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span>0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/SALESINVOICE/HeaderInformation/InvoiceNumber<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/SALESINVOICE/HeaderInformation/InvoiceDate<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TotalQuantity<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>if</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span> </code></pre> <p>Grüße,<br> Thomas</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773243#m1773243 ThomasM 2020-07-09T15:49:18Z 2020-07-09T15:49:18Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Nachtrag: die xsl:if-Abfrage ist unnötig, das passiert ja schon im Item[…]-Prädikat. Also reicht:</p> <pre><code class="block language-xml"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>template</span> <span class="token attr-name">match</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Item[not(ItemDeliveryInformation)]<span class="token punctuation">"</span></span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>copy-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>LineNum<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>copy-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TotalQuantity<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span>0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/SALESINVOICE/HeaderInformation/InvoiceNumber<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>/SALESINVOICE/HeaderInformation/InvoiceDate<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span><span class="token namespace">xsl:</span>value-of</span> <span class="token attr-name">select</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>TotalQuantity<span class="token punctuation">"</span></span><span class="token punctuation">/></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span><span class="token namespace">xsl:</span>template</span><span class="token punctuation">></span></span> </code></pre> <p>Grüße,<br> Thomas</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773244#m1773244 juls_pro_37 2020-07-09T18:16:46Z 2020-07-09T18:16:46Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>danke das funktioniert genau so wie gewünscht.</p> <p>Wie kann ich das nun vor dem "LineText" stellen?</p> <p>XML:</p> <pre><code class="block"><?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> </code></pre> <p>XSLT:</p> <pre><code class="block"><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes" encoding="UTF-8"/> <xsl:template match="node()|@*" name="identity"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <!-- Erstellt den Knoten ItemDeliveryInformation (mit Unterpunkten) wenn dier fehlt --> <xsl:template match="Item[not(ItemDeliveryInformation)]"> <xsl:apply-templates select="node()"/> <Item> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId> <xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceNumber"/> </PackingSlipId> <DeliveryDate> <xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceDate"/> </DeliveryDate> <DeliveredQuantity> <xsl:value-of select="TotalQuantity"/> </DeliveredQuantity> </ItemDeliveryInformation> </Item> </xsl:template> </xsl:stylesheet> </code></pre> <p>Korrekt:</p> <pre><code class="block"><?xml version="1.0" encoding="UTF-8"?> <SALESINVOICE> <HeaderInformation> <InvoiceDate>20200707</InvoiceDate> <InvoiceNumber>201028006</InvoiceNumber> </HeaderInformation> <LineInformation> <LineNum>1</LineNum> <CustomerPurchaseOrder>test1</CustomerPurchaseOrder> <TotalQuantity>33.00</TotalQuantity> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId>201028006</PackingSlipId> <DeliveryDate>20200707</DeliveryDate> <DeliveredQuantity>33.00</DeliveredQuantity> </ItemDeliveryInformation> <LineText> <Qualifier>INV</Qualifier> <Text>Text1</Text> </LineText> <Item> </Item> </LineInformation> <LineInformation> <LineNum>2</LineNum> <CustomerPurchaseOrder>test2</CustomerPurchaseOrder> <TotalQuantity>55.00</TotalQuantity> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId>201028006</PackingSlipId> <DeliveryDate>20200707</DeliveryDate> <DeliveredQuantity>55.00</DeliveredQuantity> </ItemDeliveryInformation> <LineText> <Qualifier>INV</Qualifier> <Text>Text2</Text> </LineText> <Item> </Item> </LineInformation> </SALESINVOICE> </code></pre> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773245#m1773245 ThomasM 2020-07-09T18:32:05Z 2020-07-09T18:32:05Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hallo Julian,</p> <blockquote> <p>Wie kann ich das nun vor dem "LineText" stellen?</p> </blockquote> <p>Du kommst mit isolierten Problemen, die dann weitere nach sich ziehen. Jetzt sollen da leere Item-Elemente rausfallen? Probiere mal selbst weiter.</p> <p>Grüße,<br> Thomas</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773247#m1773247 juls_pro_37 2020-07-09T18:55:18Z 2020-07-09T18:55:18Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hätte dies vorgeschlagen:</p> <pre><code class="block"> <xsl:template match="LineText" /> <xsl:template match="Item[not(ItemDeliveryInformation)]"> <xsl:copy> <xsl:apply-templates select="node() | @*" /> <ItemDeliveryInformation> <LineNumDeliveryNote>0</LineNumDeliveryNote> <PackingSlipId> <xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceNumber"/> </PackingSlipId> <DeliveryDate> <xsl:value-of select="/SALESINVOICE/HeaderInformation/InvoiceDate"/> </DeliveryDate> <DeliveredQuantity> <xsl:value-of select="TotalQuantity"/> </DeliveredQuantity> </ItemDeliveryInformation> <xsl:copy-of select="LineText"/> </xsl:copy> </xsl:template> </code></pre> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773246#m1773246 juls_pro_37 2020-07-09T18:40:14Z 2020-07-09T18:40:14Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hallo Thomas,</p> <p>das verstehe ich nicht, warum sollen leere Werte rausfallen?</p> <p>Habe im XML Anfangs übersehen, dass es einen Knoten "LineText" dazwischen geben könnte. Und der Knoten "ItemDeliveryInformation" müsste vor "LineText" stehen, falls dieser vorhanden ist.</p> <p>Wenn der Knoten "ItemDeliveryInformation" an der falschen Stelle steht, hat mein Konverter im Nachgang Probleme.</p> <p>LG</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773249#m1773249 ThomasM 2020-07-10T06:20:09Z 2020-07-10T06:20:09Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hallo Julian,</p> <blockquote> <p>das verstehe ich nicht, warum sollen leere Werte rausfallen?</p> </blockquote> <p>Weil unter "korrekt" steht: <Item></Item>.</p> <p>Es ist somit auch für mich nicht so einfach, das konkrete Ziel zu erkennen.</p> <p>Grüße,<br> Thomas</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773253#m1773253 ThomasM 2020-07-10T08:09:38Z 2020-07-10T08:09:38Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hallo Julian,</p> <blockquote> <p>Hätte dies vorgeschlagen:</p> <pre><code class="block"> <xsl:template match="LineText" /> </code></pre> </blockquote> <p>Das schließt LineText aus dem Ergebnis aus. Soweit waren wir doch schon bei Identity-Transformationen + zusätzlichen Anpassungen.</p> <p>In einem Ansatz sollte ItemDeliveryInformation neu erzeugt werden. Nun soll dieses neue Element, aber auch ein bereits vorhandenes Element vor LineText erscheinen. Das sind alles Versatzstücke, die sich nicht einfach kombinieren lassen.</p> <p>Ein konretes Vorher-/Nachher-Beispiel würde ich mir noch anschauen, aber mühsam Dinge zu bearbeiten, die dann wieder unnütz sind, muss ich auch nicht haben (so sehr ich XSLT auch mag ;).</p> <p>Grüße,<br> Thomas</p> https://forum.selfhtml.org/self/2020/jul/09/xslt-1-0-neuen-knoten-mit-unterpunkte-erstellen/1773283#m1773283 juls_pro_37 2020-07-10T20:20:51Z 2020-07-11T05:02:22Z XSLT 1.0 neuen Knoten mit Unterpunkte erstellen <p>Hi, ach das war mein Fehler. Hatte ich total übersehen und in meinem File falsch angeführt, das mit dem Item.</p> <p>Ich habe es so gelöst und komme auf das gewünschte Ergebnis, aber es gibt sicher wieder einen leichteren Weg... :)</p> <p>XML:</p> <pre><code class="block language-xml"><span class="token prolog"><?xml version="1.0" encoding="ISO-8859-1"?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>SALESINVOICE</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>HeaderInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>InvoiceDate</span><span class="token punctuation">></span></span>20200707<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>InvoiceDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>InvoiceNumber</span><span class="token punctuation">></span></span>201028006<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>InvoiceNumber</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>HeaderInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNum</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNum</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span>test1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TotalQuantity</span><span class="token punctuation">></span></span>33.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TotalQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Qualifier</span><span class="token punctuation">></span></span>INV<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Qualifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Text</span><span class="token punctuation">></span></span>Text1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Text</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNum</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNum</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span>test2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TotalQuantity</span><span class="token punctuation">></span></span>55.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TotalQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Qualifier</span><span class="token punctuation">></span></span>INV<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Qualifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Text</span><span class="token punctuation">></span></span>Text2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Text</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>SALESINVOICE</span><span class="token punctuation">></span></span> </code></pre> <p>XSLT:</p> <pre><code class="block language-xsl"> <!--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> </code></pre> <p>Korrekt:</p> <pre><code class="block language-xml"><span class="token prolog"><?xml version="1.0" encoding="UTF-8"?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>SALESINVOICE</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>HeaderInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>InvoiceDate</span><span class="token punctuation">></span></span>20200707<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>InvoiceDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>InvoiceNumber</span><span class="token punctuation">></span></span>201028006<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>InvoiceNumber</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>HeaderInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNum</span><span class="token punctuation">></span></span>1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNum</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span>test1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TotalQuantity</span><span class="token punctuation">></span></span>33.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TotalQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span>0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>PackingSlipId</span><span class="token punctuation">></span></span>test1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveryDate</span><span class="token punctuation">></span></span>20200707<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveredQuantity</span><span class="token punctuation">></span></span>33.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Qualifier</span><span class="token punctuation">></span></span>INV<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Qualifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Text</span><span class="token punctuation">></span></span>Text1<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Text</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNum</span><span class="token punctuation">></span></span>2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNum</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span>test2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>CustomerPurchaseOrder</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>TotalQuantity</span><span class="token punctuation">></span></span>55.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>TotalQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span>0<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineNumDeliveryNote</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>PackingSlipId</span><span class="token punctuation">></span></span>test2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>PackingSlipId</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveryDate</span><span class="token punctuation">></span></span>20200707<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveryDate</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>DeliveredQuantity</span><span class="token punctuation">></span></span>55.00<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>DeliveredQuantity</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>ItemDeliveryInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Qualifier</span><span class="token punctuation">></span></span>INV<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Qualifier</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>Text</span><span class="token punctuation">></span></span>Text2<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Text</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineText</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>Item</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>LineInformation</span><span class="token punctuation">></span></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>SALESINVOICE</span><span class="token punctuation">></span></span> </code></pre>