Skip to content

https://blog.pother.ca/XmlDiff Quick example on how to calculate the difference between two XML files, regardless of node order. Does not take node content or node attributes into account.

License

Notifications You must be signed in to change notification settings

potherca-blog/XmlDiff

Repository files navigation

XmlDiff

Quick example on how to calculate the difference between two XML files, regardless of node order. Also takes node attributes into account.

It does this by converting the XML in each file to an array, sorting the array and then creating XML from the sorted array. It then uses PHP-Diff to calculate and display the diff between the sorted XML.

You can try it out here.


Given the following two XML files

1.xml:

<xml>
    <twee>
        <d/>
        <c an-attribute="another value"></c>
    </twee>
    <een>
        <b>
            Some more content
        </b>
        <a>
            Some content
        </a>
    </een>
</xml>

2.xml:

<xml>
    <een>
        <a>
            Some content
        </a>
        <b>
            Some more content
        </b>
    </een>
    <twee>
        <c an-attribute="a different value" second-attribute="a value also" first-attribute="a value"></c>
        <d/>
        <e></e>
    </twee>
</xml>

The output would be:

Old VersionNew Version
9       </b> 9       </b> 
10 </een> 10 </een> 
11 <twee> 11 <twee> 
12   <c an-attribute="another value"/> 12   <c an-attribute="a different value" first-attribute="a value" second-attribute="a value also"/>
13   <d/> 13   <d/> 
  14   <e/> 
14 </twee> 15 </twee> 
15</root> 16</root> 
16 17 

About

https://blog.pother.ca/XmlDiff Quick example on how to calculate the difference between two XML files, regardless of node order. Does not take node content or node attributes into account.

Resources

License

Stars

Watchers

Forks

Packages

No packages published