Thanks. So it looks something like
$doc2//row[
some $r in $doc1//row satisfies
every $c in $MAPPING_classifiers/classifier satisfies
(./cell[@name=$c/class[2]] and $r/cell[@name=$c/class[1]])]
Incidentally, I would write this:
<xsl:variable name="MAPPING_classifiers">
<Mapping_Classifiers>
<xsl:for-each select="$tokenize_classifiers">
<xsl:variable name="tokenize_further" select="tokenize(.,':')"/>
<xsl:variable name="index"><xsl:value-of select="index-of($tokenize_classifiers,.)" /></xsl:variable>
<xsl:element name="classifier">
<xsl:attribute name="index">
<xsl:value-of select="$index" />
</xsl:attribute>
<xsl:for-each select="$tokenize_further">
<xsl:element name="class">
<xsl:value-of select="." />
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each>
</Mapping_Classifiers>
</xsl:variable>
as:
<xsl:variable name="MAPPING_classifiers" as="element()*">
<xsl:for-each select="$tokenize_classifiers">
<classifier index="{position()}">
<xsl:for-each select="tokenize(.,':')">
<class>
<xsl:value-of select="."/>
</class>
</xsl:for-each>
</classifier>
</xsl:for-each>
</xsl:variable>
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference