Altova DiffDog Server 2025 

Beim Vergleich von Dateien im XML-Modus (definiert mit der CLI-Option --mode=xml) können Sie den Vergleichsbericht nur im XML-Format anzeigen (--output-mode=xml). Um zu verstehen, wie Unterschiede im XML-Format ausgegeben werden, werfen Sie einen Blick auf die folgenden beiden XML-Dateien, die Seite an Seite verglichen werden:

 

<book id="1">  
  <author>Mark Twain</author>
</book>

<book id="2">
  <author>Franz Kafka</author>
</book>

 

Sie sehen, dass die Dateien zwei Unterschiede enthalten: (i) einen in Zeile 1 im Wert des Attributs id des Elements book und (ii) einen in Zeile 2 im Textinhalt des Elements author.

 

In DiffDog Server können Sie diese beiden XML-Dateien mit dem folgenden Befehl vergleichen und einen Vergleichsbericht im XML-Format erhalten.

 

diffdogcmdlclient diff file1.xml file2.xml --mode=xml --output-mode=xml --output-file=report.xml

 

Mit der Option --mode werden die verglichenen Dateien als XML (und nicht als Text- oder Binärdateien) behandelt.

Die Option --output-mode muss bei Vergleichen im XML-Modus XML sein.

Die Option --output-file definiert den Pfad zur generierten Berichtsdatei.

Da keine --quiet=true-Option vorhanden ist, wird der Vergleichsbericht in der Befehlszeile und in Form einer Ausgabedatei generiert. Siehe "Berichtsformate" im Kapitel Vergleichsergebnisse.

 

XML-Bericht

Die Unterschiede werden nach Ausführung des Vergleichs folgendermaßen im XML-Bericht ausgegeben:

 

<?xml version="1.0" encoding="UTF-8"?>
<!-- Differencing export generated by Altova DiffDog Server -->
<diff_result>
  <diff_info comparison_mode="xml">
     <source_left name="c:\file1.xml" uri="file:///c:/file1.xml"/>
     <source_right name="c:\file2.xml" uri="file:///c:/file2.xml"/>
  </diff_info>
  <xml_diff>
     <left_location>
        <parent xpath="/book"/>
        <position>1</position>
     </left_location>
     <right_location>
        <parent xpath="/book"/>
        <position>1</position>
     </right_location>
     <left_content>
        <attribute id="1"/>
     </left_content>
     <right_content>
        <attribute id="2"/>
     </right_content>
  </xml_diff>
  <xml_diff>
     <left_location>
        <parent xpath="/book/author"/>
        <position>1</position>
     </left_location>
     <right_location>
        <parent xpath="/book/author"/>
        <position>1</position>
     </right_location>
     <left_content>
        <element>Mark Twain</element>
     </left_content>
     <right_content>
        <element>Franz Kafka</element>
     </right_content>
  </xml_diff>
</diff_result>

 

Im XML-Bericht wird Folgendes beschrieben:

 

Das Element diff_info ganz oben enthält Informationen über verglichene Dateien, darunter den Vergleichsmodus und die Pfade der verglichenen Dateien. Dieses Element kommt nur einmal vor. (Das Attribut comparison_mode gibt den Wert der Option --mode in der Befehlszeile an - oder den Standardwert der Option, wenn in der Befehlszeile kein Wert angegeben wurde).

Die einzelnen xml_diff-Elemente enthalten die gefundenen XML-Unterschiede. In deren Child-Elementen left_location und right_location ist jeweils der Parent Node des Node angegeben, der den Unterschied enthält.

Der parent Node hat ein xpath-Attribut, das den XPath Locator-Ausdruck des Parent Node enthält und das Element position gibt die Position des Parent innerhalb des Kontext-Nodeset an.

Im ersten Unterschied (siehe XML-Quelldatei ganz oben in diesem Kapitel) ist der Node, der den Unterschied enthält, das Attribut id des einzigen book-Elements. Daher ist der Parent des @id-Node book, also das /book-Element an Position 1 (da nur ein einziges book-Element vorhanden ist; es ist das einzige Element und gleichzeitig das root-Element des Dokuments).

Im zweiten Unterschied (siehe XML-Quelldatei ganz oben in diesem Kapitel) ist der Node, der den Unterschied enthält, der Text-Node des einzigen author Child-Elements des book-Elements. Der Parent dieses Text-Node ist somit der Node author an der Position 1 in dem vom Locator-Ausdruck /book/author zurückgegebenen Nodeset.

Die Elemente left_content und right_content enthalten die jeweils die Nodes, die im jeweiligen xml_diff-Element Unterschiede aufweisen. Beachten Sie, dass in unserem obigen Beispiel im ersten xml_diff-Element der Node, der eine Änderung aufweist, das id-Attribut von book ist, während es im zweiten xml_diff-Element der Textinhalt das Elements author ist, das einen Unterschied aufweist.

 

© 2019-2025 Altova GmbH