[xsl] compare two nodes (the child elements, not the string values) in XSLT 1.0

Subject: [xsl] compare two nodes (the child elements, not the string values) in XSLT 1.0
From: Wolfhart Totschnig <wolfhart@xxxxxxxxxxxxx>
Date: Wed, 06 Jul 2011 13:54:52 -0500
Hello,

I have a seemingly simple xslt problem to which I cannot find the solution. I want to test whether the context node, which is an <author> element with the form (first?, middle?, last), is equal to one of a set of <person> elements. By "equal" I mean having the same child elements and values of these elements. At first, I thought it would be as easy as

test="path/person = ."

But then I realized that the "=" operator compares the string values of the nodes, such that

<author>
<first>John</first>
<last>Doe</last>
</author>

and

<person>
<last>JohnDoe<last>
</person>

will be evaluated as equal, which I want to avoid. So how can I check, in XSLT 1.0, whether two nodes are equal in the sense I intend?

Thank you for your help!
Wolfhart

Current Thread