xsl-list
[Top] [All Lists]

Re: xsl != not working?

2005-06-21 13:33:16
//h2[1]/text() != text()

I think this is a FAQ about the "//" abbreviation.

What you probably need is:

(//h2)[1]/text() != text()

But checking for node identity using the content of the node may
generally be unreliable.

I'd recommend:

     generate-id() != generate-id((//h2)[1])

Even this may cause HUGE inefficiency, therefore it is better to
evaluate (//h2)[1] once and define an xsl:variable having this value:

     <xsl:variable name="h2ID" select="generate-id((//h2)[1] )"/>


then at the place, where the test is necessary, have:

     generate-id() != $h2ID


Cheers,
Dimitre Novatchev





On 6/22/05, Joe Stump <joe(_at_)joestump(_dot_)net> wrote:
I've got a bunch of h2's in a document that I want to group at the
top with jumps to the actual h2's in the body, which I have working
without incident. The problem I have is with links back to the top.
Basically, if it's NOT the first h2, it should show a "Back to Top"
link above the h2. I have a test that appears to be exactly what I
need, but it's not working. The basic test is:

//h2[1]/text() != text()

Below is the full XSLT (it's in a template matching h2's).

    <xsl:if test="//h2[1]/text() != text()">
          <xsl:text>"</xsl:text>
          <xsl:value-of select="//h2[1]/text()"/>
          <xsl:text>"</xsl:text>
          <xsl:text> != </xsl:text>
          <xsl:text>"</xsl:text>
          <xsl:value-of select="text()"/>
          <xsl:text>"</xsl:text>

      <xsl:element name="div">
          <xsl:attribute name="class">article-top</xsl:attribute>
          <xsl:element name="a">
            <xsl:attribute name="class">article-top</xsl:attribute>
            <xsl:attribute name="href">#top</xsl:attribute>
            <xsl:text>Back to Top</xsl:text>
          </xsl:element>
      </xsl:element>
    </xsl:if>

Here's my output for my first h2 (which should NOT have a link to top
above it):

"Definition" != "Definition"
Back to Top

Quite annoying ... any ideas? How can 'Definition' not equal
'Definition'?

--Joe




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>