Re: [xsl] XSL comparing nodesets by name only

Subject: Re: [xsl] XSL comparing nodesets by name only
From: Lars Huttar <lars_huttar@xxxxxxx>
Date: Mon, 15 Nov 2010 06:38:45 -0600
On 11/15/2010 6:24 AM, Piet van Oostrum wrote:
> Markus Ohlenroth wrote:
>
>  > I use XSLT 1.0
>  > 
>  > Given the following nodesets:
>  > 
>  > <data:me1> <a></a> <b/> </data:me1>
>  > 
>  > <data:me2> <a>value</a> <dd></dd> </data:me2>
>  > 
>  > 
>  > <xsl:variable name="me1" select="//data:me1/*"/> <xsl:variable
>  > name="me2" select="//data:me2/*"/>
>  > 
>  > 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)"/>
>

Piet, it seems to me that will work like

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

In other words, it will only evaluate to true if the *first* element of
$me1 and the *first* element of $me2 have the same name.
"The *name <http://www.w3.org/TR/xpath/#function-name>* function returns
a string containing a QName
<http://www.w3.org/TR/REC-xml-names#NT-QName> representing the
expanded-name <http://www.w3.org/TR/xpath/#dt-expanded-name> of the node
in the argument node-set that is first in document order
<http://www.w3.org/TR/xpath/#dt-document-order>."

Lars

Current Thread