Etheridge, Stephen wrote:
I am trying to compare two xml documents of the same format. I have
successfully transformed the documents to include a field called ItemKey
which includes a unique key (comprised of four other elements). I am
now trying to match and compare elements based on that key value.
My XSLT includes the following as "global" variables:
<xsl:variable name="file1">test_comp4.xml</xsl:variable>
<xsl:variable name="old_file"
select="document($file1)/*"></xsl:variable>
<xsl:variable name="file2">test_comp4_edited.xml</xsl:variable>
<xsl:variable name="new_file"
select="document($file2)/*"></xsl:variable>
<xsl:output method="xml" indent="yes"/>
<xsl:key name="test" match="//ItemKey" use="//ItemKey"/>
First of all, in a pattern like the match attribute you never need to
start with "//", match="ItemKey" is enough, doing match="//ItemKey" does
not gain anything.
And
match="//ItemKey" use="//ItemKey"
looks very odd, usually the "use" attribute selects an attribute (e.g.
use="@foo") or a child element (e.g. use="bar") or the node itself (e.g.
use=".") but putting use="//ItemKey" looks wrong, that way you "key" any
"ItemKey" element on any "ItemKey" element in the document.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--