xsl-list
[Top] [All Lists]

Re: [xsl] XSL comparing nodesets by name only

2010-11-15 06:34:55

  >
  >  I want to find out if the two nodesets share one or more elements. I
  >  only want a comparison regarding their nodenames not the values of
  >  the nodes.  In the above example $me1 and $me2 share the name of one
  >  element: and that is the element "<a/>". So my nodeset comparison
  >  should return "true".

In XSLT 1.0:

     <xsl:value-of select="name($me1) = name($me2)"/>

Unfortunately, no. In XSLT 1.0, name($nodeset) returns the name of the first item in the nodeset.

I don't see any alternative to coding it as a nested loop

<xsl:variable name="matches">
<xsl:for-each select="$me1">
<xsl:for-each select="$me2">
<xsl:if test="name($me1) = name($me2)">yes</xsl:if>
</
</
</

<xsl:if test="contains($matches, 'yes')"

Michael Kay
Saxonica
In 2.0:

     <xsl:value-of select="$me1/name() = $me2/name()"/>



--~------------------------------------------------------------------
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(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--