Hallo Andreas, danke für deine Hilfe! Deine XPATH-Anweisung hat auch wunderbar geklappt. Weißt du zufällig, warum meine Version nicht klappt? Unten ein paar Anmerkungen!
Grüße, mario
Hi,
<xsl:template match="//*[@id='map']/../../@gridwidth">
Du suchst das gridwidth-Attribut eines Elements, dessen Enkel die id map hat?
Das ist genau das, was ich machen will
Das würde ich so probieren:
match="//*[*/*/@id='map']/@gridwidth"
»»
Das klappt auch!
(daß in Deinem XML kein Element mit id="map" vorkommt, hast Du berücksichtigt?)
Eigentlich gibt es eins. Hatte es nur vergessen reinzukopieren!
Stell di einfach vor
<imageComponent id="logo" imageHeight="" imageWidth="" imageBorder="" isVisible=""/>
ist eigentlich
<imageComponent id="map" imageHeight="" imageWidth="" imageBorder="" isVisible=""/>
Wenn ich die XSL auf die Source XML loslasse, knallt es bei der XPATH Anweisung im 2. templatematch-tag "//*[@id='map']/../../@gridwidth"
Dann dreh den Lautsprecher ab. (Oder sag, was "knallt" bedeutet - genauer Text der Fehlermeldung, interessant wäre auch, welcher XSLT-Prozessor benutzt wird.
Sorry für die ungenaue Beschreibung. Ich mache das ganze mit der javax.xml.transform library. ICh weiss gar nciht welchen Prozessor die benutzt. Folgende Fehlermeldung wird ausgespuckt.
FEHLER: 'Syntaxfehler in '//*[@id='map']/../../@gridwidth'.'
SCHWER WIEGENDER FEHLER: 'Die Formatvorlage konnte nicht kompiliert werden.'
javax.xml.transform.TransformerConfigurationException: Die Formatvorlage konnte nicht kompiliert werden.
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(Unknown Source)
at XSLTBuilder.transform(XSLTBuilder.java:80)
at Dummy.main(Dummy.java:72)
cu,
Andreas