juls_pro_37: XSLT 1.0 Prüfen ob ein Unterknoten vorhanden

Beitrag lesen

Hi,

würde eine Prüfung auf "ItemDeliveryInformation" benötigen, ob der Unterpunkt "PackingSlipId" vorhanden ist, wenn nicht, soll ein neues Feld erzeugt werden mit der Bezeichnung "PackingSlipId" und dem Inhalt von "HeaderInformation/PackingSlipId_Z_Article"

XML:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SALESINVOICE>
	<Interchange>		
	</Interchange>
	<HeaderInformation>		
		<PackingSlipId_Z_Article>neueLS-Nr</PackingSlipId_Z_Article>		
	</HeaderInformation>
	<LineInformation>
		<Item>
			<LineNum>1</LineNum>
			<GTIN>123</GTIN>
				<ItemDeliveryInformation>
				<LineNumDeliveryNote>1</LineNumDeliveryNote>
				<PackingSlipId>LS264694</PackingSlipId>
				<DeliveryDate>20200615</DeliveryDate>
				<DeliveredQuantity>920.00</DeliveredQuantity>
			</ItemDeliveryInformation>
		</Item>
	</LineInformation>
	<LineInformation>
		<Item>
			<LineNum>2</LineNum>					
			<ItemDeliveryInformation>
				<LineNumDeliveryNote>0</LineNumDeliveryNote>
				<DeliveryDate>20200615</DeliveryDate>
				<DeliveredQuantity>23.00</DeliveredQuantity>
			</ItemDeliveryInformation>
		</Item>
	</LineInformation>
</SALESINVOICE>

XSLT:

<xsl:template match="ItemDeliveryInformation"> 
    <xsl:if test="PackingSlipId = ''">
      <PackingSlipId><xsl:value-of select="HeaderInformation/PackingSlipId_Z_Article"></xsl:value-of></PackingSlipId>
    </xsl:if>
    <xsl:apply-templates select="node()|@*"/>  
</xsl:template>

korrekt wäre:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SALESINVOICE>
	<Interchange>		
	</Interchange>
	<HeaderInformation>		
		<PackingSlipId_Z_Article>neueLS-Nr</PackingSlipId_Z_Article>		
	</HeaderInformation>
	<LineInformation>
		<Item>
			<LineNum>1</LineNum>
			<GTIN>123</GTIN>
				<ItemDeliveryInformation>
				<LineNumDeliveryNote>1</LineNumDeliveryNote>
				<PackingSlipId>LS264694</PackingSlipId>
				<DeliveryDate>20200615</DeliveryDate>
				<DeliveredQuantity>920.00</DeliveredQuantity>
			</ItemDeliveryInformation>
		</Item>
	</LineInformation>
	<LineInformation>
		<Item>
			<LineNum>2</LineNum>					
			<ItemDeliveryInformation>
				<LineNumDeliveryNote>0</LineNumDeliveryNote>
				<PackingSlipId>neueLS-Nr</PackingSlipId>
				<DeliveryDate>20200615</DeliveryDate>
				<DeliveredQuantity>23.00</DeliveredQuantity>
			</ItemDeliveryInformation>
		</Item>
	</LineInformation>
</SALESINVOICE>

LG Julian

akzeptierte Antworten