> -----Ursprüngliche Nachricht-----
> Von: Sylvain Wallez [mailto:[EMAIL PROTECTED]
> Gesendet: Dienstag, 10. Januar 2006 15:08
> An: [email protected]
> Betreff: Re: Why doesn't this XSL work??
>
> Christian Barth wrote:
> > Hi!
> >
> >
> > I wrote the following XSL-File:
> >
> > ...
> > <xsl:for-each
> >
> select="//Bs_Bauteil_Liste/Brandwand_Liste/Brandwand[funktion='Trennwa
> > nd']"> <xsl:variable name="ID" select="@ID" /> <xsl:variable
> > name="bez" select="bezeichnung" /> <xsl:variable name="wand_ID"
> > select="Wand_id_Liste/wand_id"/> <xsl:for-each
> >
> select="//[EMAIL PROTECTED]/Stockwerk_Liste/[EMAIL PROTECTED]
> > ]//bau
> > teil_id">
> > <xsl:if test=". = $wand_ID">
> > nTrennwand=nNodeIdx;
> > nNodeIdx++;
> > Note(nTrennwand,nTrennwaende,'<xsl:value-of
> > select="$bez"/>','javascript:select(\'wand\',
> > \'Trennwand\',<xsl:value-of select="$ID"/>,<xsl:value-of
> > select="$stock_ID"/>)','wand')
> > <xsl:sort select="." order="ascending" data-type="text"/>
> > <xsl:for-each
> > select="//[EMAIL PROTECTED]/Wand/Oeffnungs_Liste/Oeffnung">
> > ...
> >
> > It's just a part of the file. But the rest is working. My
> Problem is
> > the <xsl:if>. Is there anything wrong with it? It's always true.
> > When I write <xsl:value-of select="." /> and <xsl:value-of
> select="$wand_ID"
> > />, the values are correct. I don't understand this.
> >
>
> This because this tests compares the string values of
> elements. So if they happen to have the same content or be
> both empty, the test will be true. If you want to test these
> are the same nodes, you can use
> <xsl:if test="generate-id(.) = generate-id($wand_ID)">
>
I want to compare the string values. So the test should be correct, right?
> > Another problem is that when I remove the <xsl:sort>-Tag I get an
> > "Unable to get transformer handler"-error.
> > I thought the sort-Tag is optional, isn't it?
> >
>
> Yep. Now I can't see a closing <xsl:if tag>. Is it somewhere
> down the XSL?
>
Here is the complete for-each-code:
<xsl:for-each
select="//Bs_Bauteil_Liste/Brandwand_Liste/Brandwand[funktion='Trennwand']">
<xsl:variable name="ID" select="@ID" />
<xsl:variable name="bez" select="bezeichnung" />
<xsl:variable name="wand_ID" select="Wand_id_Liste/wand_id"/>
<xsl:for-each
select="//[EMAIL PROTECTED]/Stockwerk_Liste/[EMAIL PROTECTED]//bau
teil_id">
<xsl:if test="generate-id(.) = generate-id($wand_ID)">
nTrennwand=nNodeIdx;
nNodeIdx++;
Note(nTrennwand,nTrennwaende,'<xsl:value-of
select="$bez"/>','javascript:select(\'wand\',
\'Trennwand\',<xsl:value-of
select="$ID"/>,<xsl:value-of select="$stock_ID"/>)','wand')
<xsl:sort select="." order="ascending"
data-type="text"/>
<xsl:for-each
select="//[EMAIL PROTECTED]/Wand/Oeffnungs_Liste/Oeffnung">
<xsl:if test="Tuer">
nNodeIdx++;
nOeffnung=nNodeIdx;
Note(nOeffnung,nTrennwand,'Tuer
','javascript:select(\'oeffnung\',
\'Tuer\',<xsl:value-of
select="@ID"/>)','tuer')
nNodeIdx++;
</xsl:if>
<xsl:if test="Fenster">
nNodeIdx++;
nOeffnung=nNodeIdx;
Note(nOeffnung,nTrennwand,'Fenster
','javascript:select(\'oeffnung\',
\'Fenster\',<xsl:value-of
select="@ID"/>)','fenster')
nNodeIdx++;
</xsl:if>
</xsl:for-each>
</xsl:if>
</xsl:for-each>
</xsl:for-each>
I hope this helps. This is the working code. When I remove the sort-tag I
get the error I mensioned before
Barthi
> Sylvain
>
> --
> Sylvain Wallez Anyware Technologies
> http://bluxte.net http://www.anyware-tech.com
> Apache Software Foundation Member Research & Technology Director
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]