Vergleichen Sie XML-ignorieren der Reihenfolge der Kind-Elemente
Weiß jemand von einem tool, das den Vergleich von zwei XML-Dokumenten. Sicherung Spott... es gibt noch mehr. Ich brauche etwas, das wird stellen Sie sicher, dass jeder Knoten in Datei 1 auch in Datei 2 unabhängig von der Reihenfolge. Ich dachte, XML Spy, würde es mit dem Child-node Reihenfolge Ignorieren-option, aber es hat nicht. Wäre das folgende gilt das gleiche:
<Node>
<Child name="Alpha"/>
<Child name="Beta"/>
<Child name="Charlie"/>
</Node>
<Node>
<Child name="Beta"/>
<Child name="Charlie"/>
<Child name="Alpha"/>
</Node>
- Genau das, was ich Suche. Also die Vergleichs-tool handhaben kann diese wichtige nuance?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht, um google für "XML-diff-tool", die Ihnen mehr als ausreichende Ergebnisse.
Einer von Ihnen ist OxygenXml, ein tool, das ich Häufig verwenden. Sie können auch versuchen, Microsofts XML Diff-und Patch-Tool.
Glück.
diff xml ignore order of child nodes
.Schrieb ich ein einfaches python-tool namens
xmldiffs
:Bekommen es https://github.com/joh/xmldiffs
Ich würde verwenden XMLUnit für diese, wie für Sie sorgen können Elemente in einer anderen Reihenfolge.
Mit Beyond Compare können Sie in der
File Formats
-Einstellungen dieXML Sort
Konvertierung. Mit dieser option wird die XML-Kinder sortiert werden, bevor der diff.Einer trial - /portable-version von Beyond Compare ist verfügbar.
Hatte ich ein ähnliches Bedürfnis an diesem Abend, und konnte nicht etwas finden, die passen meine Anforderungen.
Mein workaround war das Sortieren der zwei XML-Dateien, die ich wollte, diff, Sortierung alphabetisch nach den Namen des Elements. Einmal waren Sie beide in eine konsistente Reihenfolge, ich könnte diff die zwei sortierte Dateien mit einem normalen visual diff-tool.
Wenn dieser Ansatz klingt nützlich, um jemand anderes, die ich mitgeteilt habe, das python-Skript, das ich schrieb, zu tun, die Sortierung in http://dalelane.co.uk/blog/?p=3225
Als (sehr) quick and dirty Ansatz, ich habe dies in einer Klemme:
In C1 die Formel:
In D1, geben Sie die forumula:
Wird, markieren Sie alle Zeilen, die in einer Datei, aber nicht die andere Datei. Es ist nicht ordentlich von einer Strecke, aber manchmal muss man einfach mit dem arbeiten was du hast.
Hier ist ein diff-Lösung mit SWI-Prolog -
Prolog vereinen und die variable Name auf übereinstimmung Knoten aus Datei 1 und Datei 2.
Die Einigung auf den Knoten Variablen bedeutet die "diff" - Erkennung.
Hier einige Beispiel-Ausgabe unter:
Mit C# - Sie könnten dies tun und anschließend vergleichen Sie es mit einem diff-tool.
Schrieb ein einfaches java-Programm, dies zu tun. Gespeichert zwei XML ' s, die verglichen werden in einer HashMap mit key als XPath des Elements(einschließlich text-Wert des Elements) und den Wert als Anzahl der vorkommen des Elements. dann im Vergleich der beiden HashMap ist für beide keyset und values.
/**
* erstellt eine Zuordnung von Elementen mit text-Werten und keine verschachtelten Knoten.
* Hier der Schlüssel der map ist der XPATH-element verkettet mit dem text-Wert des Elements, Wert des Elementes ist die Anzahl der vorkommen des Elements.
*
* @param xmlContent
* @return
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
Vollständige Programm ist hier https://comparetwoxmlsignoringstanzaordering.blogspot.com/2018/12/java-program-to-compare-two-xmls.html