Altova Mailing List Archives>Archive Index >xsl-list Archive Home >Recent entries >Thread Prev - >Thread Next - Re: [xsl] SET-INTERSECTION function/template for sequences [xsl] SET-INTERSECTION function/template for sequencesTo: xsl-list@-----.------------.--- Date: 7/4/2009 4:54:00 PM
Dear XML Ladies and Gentlemen,
I am trying to implement in XSL a *set-intersection* "function" in the form of a template. It should accepts two sequence parameters and return a sequence parameter. The application for this function will be to argument values that contain space delimited lists like this:
XML:
<skill category="database software">oracle pl-sql package functions and stored procedures</skill>
XSL: (test "database software" for any match in "database sysadm")
<xsl:template match="
exists(
setintersect(
tokenize(skill/@category,' '),
tokenize('database sysadm',' ')
)
)
">
I have tried to implement the setintersect as a for loop to build a variable containing the matches, but cannot seem to get this variable to "build" up in the loop.
I have also tried to adapt this node-based set:intersection found through a google search, but I cannot figure out how it is working, and would like a simpler, one-template approach anyway.
<xsl:template name="set:intersection">
<xsl:param name="nodes1" select="/.." />
<xsl:param name="nodes2" select="/.." />
<xsl:apply-templates select="$nodes1[count(.|$nodes2) = count($nodes2)]" mode="set:intersection" />
</xsl:template>
<xsl:template match="node()|@*" mode="set:intersection">
<xsl:copy-of select="." />
</xsl:template>
Can someone give me some help? Perhaps I am going about this all wrong and there is another, simpler, more elegant way?
Thanks,
Mark Bordelon
Getty Trust
--~------------------------------------------------------------------
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@l...>
--~--
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
