|
Subject: RE: [xsl] counting matches between list items From: "Michael Kay" <mhkay@xxxxxxxxxxxx> Date: Wed, 20 Jun 2001 17:01:08 +0100 |
> I'm new to XSL, so this might be a simple question. I'm
> trying to compare
> the items in two lists using XSL to check if an item at a
> certain position
> in the two lists matches. For example, the lists below have 1
> matching item.
>
> <LISTS>
> <LIST_A>
> <ITEMS>
> <ITEM type="dog" />
> <ITEM type="cat" />
> <ITEM type="fish" />
> </ITEMS>
> </LIST_A>
> <LIST_B>
> <ITEMS>
> <ITEM type="dog" />
> <ITEM type="fish" />
> <ITEM type="cat" />
> </ITEMS>
> </LIST_B>
> </LISTS>
There may be a more direct solution, but you could try
<xsl:variable name="listB" select="LISTS/LIST_B/ITEMS"
<xsl:variable name="matches">
<xsl:for-each select="LISTS/LIST_A/ITEMS/ITEM">
<xsl:variable name="pos" select="position()"/>
<xsl:if test="@type = $listB/ITEM[$pos]/@type">Z</xsl:if>
</xsl:for-each>
</xsl:variable>
<xsl:value-of select="string-length($matches)"/>
Mike Kay
Software AG
> I've tried using count() <xsl:variable name="listMatches"
> select="count(LISTS/LIST_A/ITEMS[normalize-space(./attribute::
> type)=LISTS/LI
> ST_B/ITEMS/attribute::type])"/> But count() does not take the
> position of
> the elements into account. I can't figure out how to
> accumulate a count
> using <xsl:for-each>. If anyone has any suggestions, please
> let me know.
> Thanks,
> - Matthew
>
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] counting matches between , kfricovsky | Thread | [xsl] XSLT to SVG examples wanted, Wendell Piez |
| [xsl] include, document and namespa, Ruben Inoto | Date | Re: [xsl] Three questions on sortin, Jeni Tennison |
| Month |