[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[xsl] SET-INTERSECTION function/template for sequences
Subject: [xsl] SET-INTERSECTION function/template for sequences From: mark bordelon <markcbordelon@xxxxxxxxx> Date: Sat, 4 Jul 2009 09:53:25 -0700 (PDT) |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Is it possible to rewrite, Michael Kay | Thread | Re: [xsl] SET-INTERSECTION function, Martin Honnen |
RE: [xsl] returning nodes which hav, Michael Sokolov | Date | Re: [xsl] SET-INTERSECTION function, Martin Honnen |
Month |