This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: Extracting a list of unique base urls from anchors in a html docu ment.
- To: xsl-list at lists dot mulberrytech dot com
- Subject: Re: [xsl] Extracting a list of unique base urls from anchors in a html docu ment.
- From: David Carlisle <davidc at nag dot co dot uk>
- Date: Thu, 13 Sep 2001 19:06:02 +0100
- References: <310F18FA75CFD311A9F80050DA3446D660AB89@ls4.info.nl>
- Reply-To: xsl-list at lists dot mulberrytech dot com
> I'm propably wrong,
I'm afraid so:-)
> The only difference is that my template doesn't compare the attribute values
> as-is, but applies a substring before doing so.
No the string function completely changes the sematics of =.
If you have an XPath test of the form
(node-set a) = (node-set b)
then it is true if _any_ node in set a has a value equal to any node in
set b.
That's what you have here:
@country=preceding-sibling::city/@country
@country and preceding-sibling::city/@country
both select node sets.
If you have
(string a) = (string b)
then this is true if the string a equals to the string b.
that's what you have here:
substring-before(@href,'#')=substring-before(preceding::a/@href,'#')
as substring-before always returns a string.
substring-before requires a string as its first argument and if you give
it a node set (as here) then it takes the string value of the first node
(in document order) of the node set.
@href has at most one node but preceding::a/@href has perhaps many node but
whatever the current node the first node in that collection is the first
href attribute on an a element that occurs in the document.
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list