xsl-list
[Top] [All Lists]

Re: Comparing two XML documents

2005-01-14 07:24:31

It should be relatively easy to turn each of these into some normalised
form using xslt such that you can then just run diff or some other text
file differencing tool.

I can't suggest the exact XSLT that you need as your excerpts didn't
show enough of the structure.
your xml file 1 isn't well formed (multiple top level elements) I assume
there is a surrounding element that you didn't show?
and you said

  I have two XML documents which are logically equivalent

but there are several elements for which the equivalence isn't obvious,
eg what corresponds to <level>16</level> in your 2nd format?

howver running

<xsl:template match="code[(_at_)type='relationship constraint']">
 relationship constraint: <xsl:value-of select="normalize-space(.)"/>
</xsl:template>

<xsl:template match="IMPLIES">
 relationship constraint: [<xsl:text/>
 <xsl:for-each select="CONCEPT">
   <xsl:value-of select="@name"/>
   <xsl:if test="postition()!=last()">, </xsl:if>
 </xsl:for-each>
 <xsl:text>]</xsl:text>
</xsl:template>

will turn

   <code type="relationship 
constraint">[MildSeverity,ModerateSeverity,SevereSeverity]
                                        </code>

and

    <IMPLIES>
            <CONCEPT name="MildSeverity" ref="10238"/>
            <CONCEPT name="ModerateSeverity" ref="10239"/>
            <CONCEPT name="SevereSeverity" ref="10240"/>
        </IMPLIES>

both into



relationship constraint: [MildSeverity,ModerateSeverity,SevereSeverity]

which should allow for easy comparison.

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
________________________________________________________________________

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



<Prev in Thread] Current Thread [Next in Thread>