|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Testing 2 XML documents for equality - a solution
<xsl:for-each select="$doc1//@*">
<xsl:sort select="name()" />
<xsl:value-of select="name()" />:<xsl:value-of
select="." />:<xsl:value-of select="name(..)"
/>:<xsl:value-of
select="count(../ancestor-or-self::node())" />
</xsl:for-each>
No. You can't use //@* for this at all.
You have to do normalise the attributes for each element separately, ie
inline the string from each attribute along with the string for each
element.
<x>
<y a="2"/>
<y/>
</x>
is equal to
<x>
<y/>
<y a="2"/>
</x>
by the above as you only reecord that the a attribute is on a level 2 y
element, you don't record which element it is on.
What is your definition of equality that you are trying to implement?
This definition (even if corrected) is not namespace aware so
<x:foo xmlns:x="a"/> would be different from <y:foo xmlns:y="a"/>
but equal to <x:foo xmlns:x="b"/>
so the definition of equality wouldn't be much use for any XPath use,
two "equal" inputs would behave diffently as input to a stylesheet.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








