Khanq Geschrieben 6. November 2009 Teilen Geschrieben 6. November 2009 Hi zusammen, ich habe diese Frage auch schon an anderer Stelle im Netz gestellt, jedoch bisher keine Antwort erhalte und da frag ich doch auch mal hier: Ist es möglich timestamps (und ähnliches) zu "vernachlässigen", wenn man mit XMLUnit arbeitet? Man hat also zwei XML-Dateien und möchte diese auf inhaltliche Gleichheit prüfen, dabei sollen aber bestimmte Attribute vernachlässigt werden, ohne gleich den ganzen Inhalt zu ignorieren und nur auf die Struktur zu sehen. Mein derzeitiger naiver Ansatz ist, einfach meinen input von einer Vorgabedatei und die Antwort vom System string-mäßig von timestamps zu bereinigen. Ich habe natürlich google bemüht und auch herausgefunden, dass derartige Anforderungen mit Hilfe einer eigenen Implementierung des DifferenceListener-Interfaces möglich ist, jedoch nicht, wie genau dies geschehen kann. Falls jemand etwas damit anfangen kann, wäre ich für jede Antwort dankbar. Falls es noch nicht ganz klar ist, hier ein Beispiel: Das ist der Inhalt der Vorgabe: <file key="onekey" timestamp="2009.12.01" <something/> </file> Die Antwort vom System könnte so aussehen und soll als "übereinstimmend" erkannt werden. <file key="onekey" timestamp="2007.10.02" <something/> </file> Momentan setze ich einfach den timestamp (beide male) auf "0" und damit ist die Gleichheit gesichert, aber wie erwähnt sollte das auch eleganter gehen. Danke für jede Antwort mfg KhanQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 6. November 2009 Teilen Geschrieben 6. November 2009 Ich würde da zwei möglich Ansätze präferieren: Entweder Du entfernst die Timestamp-Attribute mit Hilfe einer XSLT, d.h. XML1 => XSLT => Zwischen-XML1 == Zwischen-XML2 <= XSLT <= XML2 Oder Du liest die Element via XQUERY und vergleichst die resultierenden Elemente Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.