xsl-list
[Top] [All Lists]

Re: [xsl] XSL comparing nodesets by name only

2010-11-15 06:39:02
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


--~------------------------------------------------------------------
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>
--~--