icedragon208 Posted March 15, 2013 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 :-( Link to comment Share on other sites More sharing options...
mbr Posted March 15, 2013 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 Link to comment Share on other sites More sharing options...
icedragon208 Posted March 15, 2013 Author 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. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now