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>