Subject: Re: Testing 2 XML documents for equality - a solution
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Thu, 31 Mar 2005 02:35:31 -0800 (PST)
|
Hi David,
Thanks a lot for pointing the bugs.. I'll try to
solve these and post a modified stylesheet.
Regards,
Mukul
--- David Carlisle <davidc@xxxxxxxxx> wrote:
>
> <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
>
________________________________________________________________________
>
>
__________________________________
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo
|