Hi svg4you,
Funktioniert bei mir! War auf nem ganz anderen Weg, der aber leider nicht geklappt hat. Habe deinen Vorschlag nun benutzt:
<xsl:template match="BoQBody">
<xsl:call-template name="pos_tree_in">
</xsl:call-template>
</xsl:template>
<xsl:template name="pos_tree_in">
<xsl:if test="BoQCtgy">
<xsl:for-each select="BoQCtgy">
<ENTITY>
<xsl:if test="name(preceding-sibling::*[1]) = 'Remark'">
<LANG><xsl:value-of select="preceding-sibling::*[1]/Description/CompleteText/DetailTxt/Text"/></LANG>
<KURZ><xsl:value-of select="preceding-sibling::*[1]/Description/CompleteText/OutlineText/OutlTxt/TextOutlTxt"/></KURZ>
</xsl:if>
<xsl:variable name="nr">
<xsl:for-each select="ancestor-or-self::BoQCtgy">
<xsl:value-of select="@RNoPart"/>
<xsl:if test="position() != last()">xsl:text.</xsl:text></xsl:if> </xsl:for-each>
</xsl:variable>
<NUMB><xsl:value-of select="$nr" /></NUMB> <LBLTX><xsl:value-of select="LblTx"/></LBLTX>
<ITEM>No</ITEM>
</ENTITY>
<xsl:apply-templates select="BoQBody"/>
</xsl:for-each>
</xsl:if>
<xsl:if test="Itemlist">
<xsl:for-each select="Itemlist/Item">
<ENTITY>
<xsl:variable name="nr">
<xsl:for-each select="ancestor::BoQCtgy">
<xsl:value-of select="@RNoPart"/>
<xsl:if test="position() != last()">xsl:text.</xsl:text></xsl:if>
</xsl:for-each>
<xsl:if test="ancestor::BoQCtgys">xsl:text.</xsl:text></xsl:if>
<xsl:for-each select="ancestor-or-self::Item">
<xsl:value-of select="@RNoPart"/>
<xsl:if test="position() != last()">xsl:text.</xsl:text></xsl:if>
</xsl:for-each>
</xsl:variable>
<NUMB><xsl:value-of select="$nr" /></NUMB>
<LBLTX><xsl:value-of select="LblTx"/></LBLTX>
<ITEM>Yes</ITEM>
<QTY><xsl:value-of select="Qty"/></QTY>
<PREDOTY><xsl:value-of select="PredQty"/></PREDOTY>
<QU><xsl:value-of select="QU"/></QU>
</ENTITY>
</xsl:for-each>
</xsl:if>
</xsl:template>
Bestimmt könnte ich die Prüfung auf BoQCtgy und Item noch etwas eleganter umsetzen, abr ich bin nur froh das es funktioniert.
Vielen vielen Dank!!!!!
Grüße
Mathias