mario: Gültiger XPATH Ausdruck verursacht Fehler (XSLT)

Beitrag lesen

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