I want to compare two (or more) XMLs files by tags names and attributes names. I`m not interested by values of attributes or nodes.
Searching on google i found XMLDiff Patch ( http://msdn.microsoft.com/en-us/library/aa302294.aspx ), but it not work for me... or i don`t know how to make settings to work for me. File A
<info>
<Retrieve>
<LastNameInfo>
<LNameNum attribute="some_val">1</LNameNum>
<NumPeople>1</NumPeople>
<NameType/>
<LName>TEST</LName>
</LastNameInfo>
<Segment>
<SegNum>1</SegNum>
<Comment>A test</Comment>
</Segment>
<Segment>
<SegNum>2</SegNum>
<Dt>20110910</Dt>
<Comment>B test</Comment>
</Segment>
</Retrieve>
</info>
File B
<info>
<Retrieve>
<LastNameInfo>
<LNameNum attribute="other_val">4</LNameNum>
<NumPeople>1</NumPeople>
<NameType/>
<LName>TEST7</LName>
</LastNameInfo>
<Segment>
<SegNum>1</SegNum>
<Comment>A test</Comment>
</Segment>
<Segment>
<SegNum>2</SegNum>
<Dt>20110910</Dt>
<Comment>B test</Comment>
</Segment>
</Retrieve>
</info>
These two file must be equals.
Thanks!
Well if you'd like to do this "manually" an idea would be to use a recursive function and loop through the xml structure. Here is a quick example:
This is your recursive function:
Please keep in mind that this will only return true as long as the nodes and attributes are in the same order, and same casing is used on both xml files. You can enhance it to include or exclude attributes/nodes.
Hope it helps!