Meine XML sieht wie folgt aus:XSLT einfügen Knoten vor dem ersten Knoten basierend auf dem Wert der Kinder
<Articles>
<Article>
<Position>Body</Position>
<Categorie>Food</Categorie>
<ProductName>Apple</ProductName>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Food</Categorie>
<ProductName>Pineapple</ProductName>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Drinks</Categorie>
<ProductName>Water</ProductName>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Drinks</Categorie>
<ProductName>CocaCola</ProductName>
</Article>
</Articles>
nach der Transformation es sollte wie folgt aussehen:
<Articles>
<Article>
<Position>Title</Position>
<Titlename>Food</Titlename>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Food</Categorie>
<ProductName>Apple</ProductName>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Food</Categorie>
<ProductName>Pineapple</ProductName>
</Article>
<Article>
<Position>Title</Position>
<Titlename>Drinks</Titlename>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Drinks</Categorie>
<ProductName>Water</ProductName>
</Article>
<Article>
<Position>Body</Position>
<Categorie>Drinks</Categorie>
<ProductName>CocaCola</ProductName>
</Article>
</Articles>
Die Anzahl der Kategorien sein kann Variable, also brauche ich ein XLST-Stylesheet, das prüft, ob der Wert <Categorie>
Tag der erste ist.
Wenn ja, sollte es diesen Teil über dem Artikel kopieren:
`<Article>
<Position>Title</Position>
<Titlename>Food</Titlename>
</Article>`
Hier ist mein Versuch:
Wichtig zu wissen i v1.0 begrenzt bin
<xsl:for-each select="Article">
<xsl:if test="Position/Categorie = First()">
<Article>
<Position><xsl:value-of Select ="Title"></Position>
<Titlename><xsl:value-of Select ="Categorie"></Titlename>
</Article>
</xsl:if>
<Article>
<Position><xsl:value-of Select ="Position"></Position>
<Categorie><xsl:value-of Select ="Categorie"></Categorie>
<ProductName><xsl:value-of Select ="ProductName"></ProductName>
</Article>
</xsl:for-each>
Sie sagen „* Knoten einfügen nach dem letzten Knoten *“, aber sie bedeuten ** vor dem ersten Knoten ** in der Gruppe, nicht wahr? –