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