Re: [xsl] Problem with "except" operator

Subject: Re: [xsl] Problem with "except" operator
From: Martin Honnen <Martin.Honnen@xxxxxx>
Date: Wed, 11 Feb 2009 15:44:18 +0100
Andrew Welch wrote:
For the (short) example data posted it does not matter but in general I
think the above should be
 <xsl:value-of select="$users[not(. = $friends)]"/>
as that is quite different from $users[. != $friends].

Is that right? It always takes me a while to "get it" again, but I think you only need to be concerned about != when both sides are sequences of more than 1 item. When the LHS is a single item, it's ok.

So the above are equivalent.

I don't think so, if we have e.g.


<root>
  <Response>
    <Users>
      <Count>2</Count>
      <User>
        <Username>henry</Username>
        <Online>false</Online>
        <UserId>302</UserId>
      </User>
      <User>
        <Username>felix</Username>
        <Online>false </Online>
        <UserId>288</UserId>
      </User>
    </Users>
  </Response>
  <Response>
    <Friends>
      <Count>2</Count>
      <Friend>
        <UserId>288</UserId>
      </Friend>
      <Friend>
        <UserId>42</UserId>
      </Friend>
    </Friends>
  </Response>
</root>


then with
$users[not(. = $friends)]
we select those User/UserId elements for which there is no Friend/UserId with the same value while
$users[. != $friends]
selects those User/UserId elements for which there is at least one Friend/UserId element with a different value.




--

	Martin Honnen
	http://JavaScript.FAQTs.com/

Current Thread