Holge r: X-Path Probleme

Beitrag lesen

Da dein komplettes Stylesheet mir verborgen bleibt, ist es muehsig zu raten, wie man es am saubersten bzw. besten machen kann, insbesondere mit den aufrufen. wieder als schnell möglichkeit koenntest du folgendes verwenden:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="html"/>
    <xsl:template match="patch">
        <xsl:variable name="PatchTest" select="@name"/>
        <tr>
            <!-- fuer knoten die über dem aktuellen knoten auf gleicher ebene der abfrage entsprechen -->
            <xsl:for-each select="preceding-sibling::patch[contains(child::veraltet,$PatchTest)]">
                <td>
                    xsl:text Alter Patch </xsl:text>
                    <xsl:value-of select="$PatchTest"/>
                    xsl:text ersetzt durch Patch </xsl:text>
                    <xsl:value-of select="@name"/>
                </td>
            </xsl:for-each>
            <!-- fuer knoten die unter dem aktuellen knoten auf gleicher ebene der abfrage entsprechen -->
            <xsl:for-each select="following-sibling::patch[contains(child::veraltet,$PatchTest)]">
                <td>
                    xsl:text alter Patch </xsl:text>
                    <xsl:value-of select="$PatchTest"/>
                    xsl:text ersetzt durch Patch </xsl:text>
                    <xsl:value-of select="@name"/>
                </td>
            </xsl:for-each>
        </tr>
    </xsl:template>
</xsl:stylesheet>

Die Variable enthält den veralteten Patch Namen, nachdem du suchst. Ich wuerde aber hier nicht apply-template, sondern eher call-tamplete verwenden. Wie auch immer, es fuehren viele Wege nach Rom.

Gruß, H.