[xsl] XML file compare problem

Subject: [xsl] XML file compare problem
From: Kumar Shailendra <Kumar.Shailendra@xxxxxxxxxxxxxxxxx>
Date: Mon, 25 Jun 2001 03:33:07 -0500
Hi,
I am trying to take the difference between two xmls files using xalan2.0
extension function. Then print the difference as an xml file. I am
passing the second file as parameter to the stylesheet.
The problem I am facing is the xalan difference function is not giving
correct result. For testing purpose I passed as parameter the same file
as the input file to the stylesheet i.e. I compared "FileA" with "FileA"
but still none of the nodes were matching between two instances of the
same document source.
I tried Beyers Difference example from Dpawson's site but it also
returns the same result.
There seems to be some mistake in the way I am comparing the two files.
Since I am new to xml, I am handicapped with my limited understanding to
decypher the problem.
I would, therefore,  be grateful if some one can help me in overcoming
this problem.

The XML file I am trying to compare looks like the following

<?xml version="1.0" encoding="UTF-8" ?>
- <MSCIData>
- <row>
  <col Index="1" Value="850000000005152" />
  <col Index="2" Value="00020772338(\){;MF5A" />
  <col Index="3" Value="Atticus Capital Management, Inc." />
  <col Index="4" Value="590 Madison Avenue32nd Floor" />
  <col Index="5" Value="" />
  <col Index="6" Value="New York" />
  <col Index="7" Value="NY" />
  <col Index="8" Value="10022" />
  <col Index="9" Value="BRAZIL" />
  <col Index="10" Value="001 212 829 8100" />
  <col Index="11" Value="001 212 343 9489" />
  <col Index="12" Value="Y" />
  <col Index="13" Value="" />
  <col Index="14" Value="" />
  <col Index="15" Value="2001-05-04" />
  </row>
- <row>
  <col Index="1" Value="850000000005151" />
  <col Index="2" Value="00020772338(\){;MF5A" />
  <col Index="3" Value="Atticus Capital Management, Inc." />
  <col Index="4" Value="590 Madison Avenue32nd Floor" />
  <col Index="5" Value="" />
  <col Index="6" Value="New York" />
  <col Index="7" Value="NY" />
  <col Index="8" Value="10022" />
  <col Index="9" Value="BRAZIL" />
  <col Index="10" Value="001 212 829 8100" />
  <col Index="11" Value="001 212 343 9489" />
  <col Index="12" Value="Y" />
  <col Index="13" Value="" />
  <col Index="14" Value="" />
  <col Index="15" Value="2001-05-04" />
  </row>
  </MSCIData>

The stylesheet I am using to do the comparison is as follows ( I have
hard coded the second file in document function for testing purpose)


<?xml version='1.0' encoding='utf-8' ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
                              xmlns:xalan="http://xml.apache.org/xalan";
                              extension-element-prefixes="xalan"
                              exclude-result-prefixes="xalan">
<xsl:output method="xml"/>
<xsl:param name="comparison-file"/>
<xsl:variable name="file1" select="//*"/>
<xsl:variable name="file2"
select="document('file:///ms/user/s/shailend/playingzone/xml-java/compare1.xml',/)/*"
/>
<xsl:template match="/">
        <xsl:variable name="ns1" select ="$file1/*" />
        <xsl:variable name="ns2" select="$file2/*" />

Values in : nodeset1
        <xsl:for-each select="$ns1">
                "<xsl:copy-of select="."/>"
        </xsl:for-each>
===========================================

Values in : nodeset2
        <xsl:for-each select="$ns2">
                "<xsl:copy-of select="."/>"
        </xsl:for-each>
===========================================
difference:in $ns1, notin $ns2
        <xsl:for-each select="xalan:difference($ns1,$ns2)">
                "<xsl:copy-of select="."/>"
        </xsl:for-each>

===========================================
*******Xalan Intersection
        <xsl:for-each select="xalan:intersection($ns1,$ns2)">
                "<xsl:copy-of select="."/>"
        </xsl:for-each>

</xsl:template>
</xsl:stylesheet>

Thanks,
Shail


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread