No announcement yet.

XML Comparison

  • Time
  • Show
Clear All
new posts

  • XML Comparison

    I just purchased Beyond Compare, thinking that it would do a better job of comparing XML files than WinDiff. I am still hoping this will eventually be the case, but right now it is doing a terrible job.

    Here's what I am seeing:
    XML does not recognize carriage returns. Ever. I am seeing this line:
    <Description>This is a description</Description>

    marked as a difference from:
    This is a description

    anyone who has ever worked on XML knows this. I read the other article on the grammar things, yes I have the following grammar elements marked as important (this are the OOTB settings, I assume):
    Everything else

    The following are not checked:
    Leading whitespace
    Embedded whitespace
    Trailing whitespace
    Character case

    Maybe I need to update the grammar but I don't have experience with this. I will try removing Operator and see if that helps.
    Last edited by jetdoc57; 25-Oct-2018, 10:01 AM.

  • #2

    Grammars help control the Importance/Unimportance of aligned characters, but line breaks will introduce differences. The key here would be to use a tidy format to normalize the whitespace and line breaks. We have an "XML tidied" format for download here:

    We have a KB article for how to manually create and define any command line utility as the conversion utility:
    Aaron P Scooter Software


    • #3
      This is much better, thanks very much.

      I am using this for SailPoint, which has some interesting quirks. Is it possible to have character substitutions or equivalences, like these:

      " being equal to &quot;

      Keith Smith


      • #4
        Yes, as a BC4 Pro feature called Text Replacements. This can define a specific, aligned character difference as Unimportant (but does require the characters be aligned; see View menu -> Alignment Details to see how that is working per line).

        Go to the Text Compare's Session menu -> Session Settings, Replacements tab, and define a new replacement of

        How does this work for you? If you need to revert to trial mode to test this feature:
        And if it works well for you and you need to upgrade, you can do so from here:
        Aaron P Scooter Software


        • #5
          Thanks I will try this, I was able to do this visually this time. I bought the Pro version right out of the gate.


          • #6
            I have created a python program to strip data from the log files and I am now trying to integrate it with BC4. In the arguments we have %s and %t but it doesn't really explain what %t is. Is that a temporary filename that is created internally by the system and then deleted after the session?

            I am getting a %1 is not a valid Win32 application. I wrote it in Python to be fast. I will try using python.exe before it but your program should respect PATH and behave just like a command line.
            Last edited by jetdoc57; 26-Oct-2018, 10:38 AM.


            • #7

              What is the exact text you have entered in the Loading command line?

              %t is a temporary file generated for the comparison, used as the Output and the comparison view. %s is also technically a copy (to prevent a conversion process from mucking with an original file), while alternatively %o is also supported as the direct original file.
              Aaron P Scooter Software


              • #8
                Here's what I did: I wrote a python script that can remove columns, remove memory addresses, and only modify lines that start with certain strings. I then used the following as the conversion script:

                python.exe C:\batch\ -i %s -o %t -c RemoveDates -c NullAddresses -c RemoveThread -p 2018

                It's all based on Log4j conversion strings. Working pretty well now! Still a few bugs but doing mostly what I want, which is to show the differences between the logs for two business processes.


                • #9

                  Great to hear. Did you have any other questions? If you need any help with the variables or setting up a reverse conversion (enable on Save), let us know.
                  Aaron P Scooter Software