2016-04-28 9 views
1

Ich habe eine XML-Bundle-Datei, die ich gerne durchlesen und die Objekte innerhalb des Bundles vergleichen würde. Die Startposition wäre das mo Tag bis zum nächsten mo Tag. Ich habe xmlunit getan, aber dies vergleicht 2 xml-Dateien. Ich würde gerne in der Lage sein, die Objekte innerhalb einer XML-Bundle-Datei zu vergleichen.Vergleichen von XML-Objekten java

Ich weiß nicht, ob das Sinn macht. Wenn mehr Informationen benötigt werden, kann ich versuchen, mehr zu erklären.

Beispiel der XML-Datei:

<mo>FIELD</mo> 
<pk1>DM_READEXTRACT</pk1> 
<bo>F1-FieldPhysicalBO</bo> 
<boData> 
    <field>DM_READEXTRACT</field> 
    <dataType>CHAR</dataType> 
    <isSigned>false</isSigned> 
    <isWorkField>false</isWorkField> 
    <version>9</version> 
</boData> 
<entities> 
    <processingSequence>560</processingSequence> 
    <sequence>560</sequence> 
</entities> 
<mo>FIELD</mo> 
<pk1>DM_READEXTRACT</pk1> 
<bo>F1-FieldPhysicalBO</bo> 
<boData> 
    <field>DM_READEXTRACT</field> 
    <dataType>CHAR</dataType> 
    <isSigned>false</isSigned> 
    <isWorkField>false</isWorkField> 
    <version>2</version> 
</boData> 
<entities> 
    <processingSequence>30</processingSequence> 
    <sequence>3</sequence> 
</entities> 

Antwort

0

XMLUnit funktioniert auch auf Node s - mindestens 2.x tut.

Wenn Sie Ihr Beispiel betrachten, ist das, was Sie vergleichen wollen, kein richtiger Baum, sondern ein Wald - es gibt kein Wurzelelement, alle anderen sind Kinder von.

Was Sie tun können, ist eine DocumentFragment für jeden zu schaffen forrest Sie (auf beiden Test- und Kontroll Seiten) und fügen Sie alle Wurzeln von Ihrem Wald, um es vergleichen wollen - und dann XMLUnit sagen auf den DocumentFragment s zu arbeiten. Sie können eine Instanz eines DocumentFragment erhalten, indem Sie zuerst das DOM Document laden und dann createDocumentFragment darauf aufrufen.