Subject: RE: How to compare the attributes of two elements to ensure that they are equal
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Wed, 29 Oct 2003 07:42:40 -0000
|
The XPath 2.0 functions and operators spec includes an algorithm to do
this as part of the definition of the deep-equal() function, and it's
fairly tortuous even using XPath 2.0 constructs. I would tackle it as a
grouping problem: take the union of the two sets of attributes, group
them on a compound key consisting of the attribute name and the
attribute value, and then check that each group has size 2.
Michael Kay
> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of
> Arvind Bassi
> Sent: 29 October 2003 02:10
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: How to compare the attributes of two elements
> to ensure that they are equal
>
>
> What is the best way to compare two elements in terms of
> their attributes, and the attribute values? I need to ensure
> that each element has the same number of attributes, the same
> attribute names and the same attribute values.
>
> I am currently working on a stylesheet which compares two xml
> documents, and generates the differences between them. I have
> used Lar Huttar's xml document comparison stylesheet as my
> base (located at http://www.dpawson.co.uk), but am stuck on
> augmenting it with checks on attributes.
>
> I am currently stuck with something along the lines of:
>
> ...
> <xsl:call-template name="compare-attributes">
> with nodes as parameters
> ...
> <xsl:template name="compare-attributes">
> <xsl:param name="attrA"/>
> <xsl:param name="attrB"/>
> <xsl:for-each select="$attrA/@*">
> .... check that the same attribute exists with
> .... the same attribute exists
> if it does then compare the values for equality
>
> </xsl:for-each>
> </xsl:template>
>
> However, l cannot get a handle on each of the two attributes
> to compare them. Can somebody help to fill in the blanks?
>
> Thanks.
>
> Arvind.
>
> ______________________________________________________________
> __________
> Want to chat instantly with your online friends? Get the
> FREE Yahoo! Messenger http://mail.messenger.yahoo.co.uk
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|