icedragon208 0 Posted March 15, 2013 Report Share Posted March 15, 2013 Hello,first sorry for my bad english, i am from germany. I have a xml file (this is just a example) <ROWDATA><ROW NAME="Dert*Test*Nr1" GRUPPE ="Gut*&*fein" /><ROW NAME="Dert*Test*Nr2" GRUPPE ="lecker*&*fein" /><ROW NAME="Dert*Test*Nr3" GRUPPE ="lecker*&*fein" /><ROW NAME="Dert*Test*Nr4" GRUPPE ="Gut*&*fein" /></DATAPACKET></ROWDATA> now i want to read out the NAME attribut, according to the right GRUPPE attribut.For example, if i want to have "Der Test Nr2" <text> <xsl:for-each select="/DATAPACKET/ROWDATA/ROW"> <xsl:if test="/DATAPACKET/ROWDATA/ROW/@GRUPPE = 'lecker*&*fein' "> <xsl:value-of select="/DATAPACKET/ROWDATA/ROW/@NAME"/> </xsl:if> </xsl:for-each> </text> but this dont work :-( Quote Link to post Share on other sites
mbr 0 Posted March 15, 2013 Report Share Posted March 15, 2013 (edited) <xsl:value-of select="/DATAPACKET/ROWDATA/ROW[@gruppe='lecker*&*fein']/@NAME"/> Mit der eckigen Klammer kannst du "Predicates" setzten , d.h. deine Auswahl einschränken. Du kannst z.B. bestimmte Attributwerte nennen oder einen Wert abfragen, also so etwas wie "immer wenn der Preis höher als 10 Euro ist" etc.Mit dem /@name wählst du dann lediglich noch die gewünschte Ausgabe....Die If Abfrage ist somit hinfällig, da du schon bei"value-of" entsprechend selektierst... Edited March 15, 2013 by mbr Quote Link to post Share on other sites
icedragon208 0 Posted March 15, 2013 Author Report Share Posted March 15, 2013 Danke für die schnelle Antwort,dann brauche ich ja die for:each auch nicht oder?aber dann wählt er ja sowohl den 2ten und auch den 3ten Test aus weil ja beides mal die gleiche Gruppe ist. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.