This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
XML file compare problem
- To: XSL <xsl-list at lists dot mulberrytech dot com>
- Subject: [xsl] XML file compare problem
- From: Kumar Shailendra <Kumar dot Shailendra at morganstanley dot com>
- Date: Mon, 25 Jun 2001 03:33:07 -0500
- Organization: Morgan Stanley
- Reply-To: xsl-list at lists dot mulberrytech dot com
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