Results 1 to 9 of 9

Thread: XML Comparison

  1. #1
    Join Date
    Oct 2018
    Posts
    6

    Unhappy 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:
    <Description>
    This is a description
    </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):
    String
    Operator
    Everything else

    The following are not checked:
    Comment
    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 at 10:01 AM.

  2. #2
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,949

    Default

    Hello,

    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:
    http://www.scootersoftware.com/downl..._moreformatsv4

    We have a KB article for how to manually create and define any command line utility as the conversion utility:
    http://www.scootersoftware.com/suppo...rnalconversion
    Aaron P Scooter Software

  3. #3
    Join Date
    Oct 2018
    Posts
    6

    Default

    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. #4
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,949

    Default

    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
    "
    =
    &quot;

    How does this work for you? If you need to revert to trial mode to test this feature: http://www.scootersoftware.com/suppo...?zz=kb_evalpro
    And if it works well for you and you need to upgrade, you can do so from here:
    http://www.scootersoftware.com/shop....=upgradepolicy
    Aaron P Scooter Software

  5. #5
    Join Date
    Oct 2018
    Posts
    6

    Default

    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. #6
    Join Date
    Oct 2018
    Posts
    6

    Unhappy

    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 at 10:38 AM.

  7. #7
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,949

    Default

    Hello,

    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. #8
    Join Date
    Oct 2018
    Posts
    6

    Default

    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\txtfromlog4j.py -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. #9
    Join Date
    Oct 2007
    Location
    Madison, WI
    Posts
    11,949

    Default

    Hello,

    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

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •