hage: Attributzugriff

Hallo,

ich möchte auf ein Attribut eines Kindeskinds zugreifen. Folgenderweise:

  
...  
<xsl:template match="//myns:table">  
	<table border="0">  
	<xsl:template match="tablerow">  
		<tr>  
		<xsl:template match="tablecell">  
			<xsl:variable name="cellBGColor">  
				<xsl:value-of select="@bgcolor"/>  
			</xsl:variable>  
			<xsl:text disable-output-escaping="yes">&lt;td bgcolor=&#34;</xsl:text>  
			<xsl:value-of select="$cellBGColor"/>  
			<xsl:text disable-output-escaping="yes">&#34;&gt;</xsl:text>  
			<xsl:apply-templates/>  
			<xsl:text disable-output-escaping="yes">&lt;/td&gt;</xsl:text>  
		</xsl:template>  
		</tr>  
	</xsl:template>  
	</table>  
</xsl:template>  
...  

Das ganze matched wunderbar, allerdings ist der Inhalt der Variablen immer leer.
Ich bin mir ja fast sicher, dass ich irgendwas mit den Namespaces nicht korrekt handle, aber keine Ahnung was genau. Jede Menge try&error führte bisher leider nicht zum Ziel.

zu wandelndes XML:

  
...  
<table user4spacing="true" widthtype="fitmargins" cellborderstyle="ridge" columnspacing="0.0278in" refwidth="20.1111in" minrowheight="0" rowspacing="0" cellbordercolor="none" colorstyle="none" leftmargin="1in" rightmargin="22.0in" rowdisplay="all" outsidewrap="false" insidewrap="false" direction="lefttoright">  
<tablecolumn width="99.75%" sizetofit="false"/>  
<tablecolumn width="0.25%" sizetofit="false"/>  
<tablerow>  
<tablecell bgcolor="#71b2cf" borderwidth="0px" rowspan="1" columnspan="1" rowheader="false" columnheader="false" transition="none">  
...  

Bin für jede Hilfe dankbar.

Grüße,

hage

  1. Das ganze matched wunderbar, ...

    Ja das glaube ich dir gerne, dass "matched" sogar so gut, dass ich dir leider mitteilen musse, dass xsl:template nur top level sein darf. also niemals innerhalb eines anderen xsl:template vorkommen darf. Also:

    xsl:template

    </xsl:template>
    xsl:template

    </xsl:template>

    nicht aber:

    xsl:template
       xsl:template

    </xsl:template>
    </xsl:template>

    allerdings ist der Inhalt der Variablen immer leer.

    Keine Wunder, siehe oben. Zudem waere auch mal interessant wie deine XML datei aussieht, damit man dir weiterhelfen kann.

    Gruss, Holge r

    PS: disable output escaping ist ziemlich daneben und sollte nur verwenet werden, wenn es wirklich keine andere Loesung bei xslt1.0 gibt.

    1. Ja das glaube ich dir gerne, dass "matched" sogar so gut, dass ich dir leider mitteilen musse, dass xsl:template nur top level sein darf. also niemals innerhalb eines anderen xsl:template vorkommen darf. Also:

      xsl:template

      </xsl:template>
      xsl:template

      </xsl:template>

      nicht aber:

      xsl:template
         xsl:template

      </xsl:template>
      </xsl:template>

      Das ist schonmal gut zu wissen, stehe noch in den Anfängen was xsl angeht. Danke schonmal.

      Keine Wunder, siehe oben. Zudem waere auch mal interessant wie deine XML datei aussieht, damit man dir weiterhelfen kann.

      Äh, ich hab doch den betroffenen Ausschnitt mit angegeben?!?!