Um die Unterschiede zwischen zwei XML-Dateien zu finden, ist es möglich, XSLT zu verwenden, wenn ja, können Sie ein kleines Beispiel teilen xslt ?? Beachten Sie, dass xslt in der Lage sein sollte, zwei beliebige XML-Dateien zu verwenden. Es sollte keine bestimmte Baumstruktur annehmen.Mit XSLT ist es möglich, zwei XML zu vergleichen?
Antwort
Beginnend mit XSLT 2.0 können Sie die Funktion deep-equal
https://www.w3.org/TR/xquery-operators/#func-deep-equal verwenden, um zwei Sequenzen im Allgemeinen oder zwei Dokumentknoten zu vergleichen, wenn Sie z. deep-equal(doc('file1.xml'), doc('file2.xml'))
mit return true, wenn die beiden Dateien als gleich betrachtet werden, wie in der verknüpften Spezifikation definiert.
Um "die Unterschiede" zu finden, haben Sie nicht einmal erklärt, welche Art von Ergebnis Sie suchen. 9 in den kommerziellen Editionen Saxon hat saxon:deep-equal
die nach http://saxonica.com/html/documentation/functions/saxon/deep-equal.html können Sie die ?
Flagge und einen Fehler-Listener für einen nicht-Spiel
Erklären Grund setzen. Wenn das Ergebnis nicht gleich ist, wird eine Warnung Nachricht, die den Grund erklärt, an den ErrorListener gesendet. (In Allgemeinen eine Folge von Warnmeldungen gesendet werden, beginnend mit der untersten Ebene Differenz und den Baum nach oben bewegt)
Aber das ist nicht etwas, standardisiert.
Bevor Sie mit der Programmierung in XSLT oder einer anderen Sprache beginnen, müssen Sie eine Spezifikation schreiben, was das Programm tun soll. Dies ist eine komplexe Anforderung, die nicht in drei Zeilen definiert werden kann. Es gibt mindestens eine Firma - DeltaXML - die das für ihren Lebensunterhalt tut.
Die erste Herausforderung besteht darin, zu definieren, was es bedeutet, dass zwei Dateien gleich sind. (Sie könnten die Spezifikation von fn: deep-equal als Ausgangspunkt nehmen). Sobald Sie das getan haben, ist das viel schwierigere Problem zu definieren, welche Ausgabe Sie produzieren möchten, wenn die Dateien unterschiedlich sind. Um ein sehr einfaches Beispiel, welche Ausgabe würden Sie für die Dateien:
(a)
<a><b/><c/></a>
(b)
<a><c/><b/></a>
- 1. zwei XML-Dateien mit xslt vergleichen?
- 2. Es ist möglich, zwei zusammen XML
- 3. Ist es möglich, diese Daten mit XSLT zu summieren?
- 4. Ist es möglich, das Attribut des Elternelements mit dem Kind in XPath in XSLT zu vergleichen?
- 5. Ist es möglich, "Zwei-Schritt-Ansicht" nur mit XSLT zu erstellen?
- 6. XML zu XML mit XSLT
- 7. XSLT Merge zwei XML-Strukturen
- 8. Ist es möglich, eine Zeichenfolge mit XML als Eingabe für die ant xslt Aufgabe zu übergeben?
- 9. Ist es möglich, ein einzelnes XSLT-Template für zwei oder mehr Knoten mit unterschiedlichen XPATH aufzurufen?
- 10. iOS UIAutomation: Ist es möglich, Screenshots mit Referenzbildern zu vergleichen?
- 11. wie zwei XML-Dateien mit XSLT verschmelzen
- 12. Ist es möglich, große XSLT-Bibliotheken zu erstellen?
- 13. XML zu XML-Transformation mit Xslt
- 14. Json zu Xml mit xslt
- 15. Ist es möglich, eine Acumatica Company Snapshot XML zu bearbeiten?
- 16. XML zu XML Transformation mit einfachen XSLT
- 17. Ist es möglich, zwei Eigenschaften des Datentyps mit <= in einer OWL-Anweisung zu vergleichen?
- 18. Es ist möglich, zwei gemeinsame?
- 19. Ist es möglich, XML mit Excel (VBA) zu analysieren?
- 20. Ist es möglich, mit Haml einfach-altes XML zu generieren?
- 21. Ist es möglich, zwei Arten zu vergleichen, wenn einer von den anderen zuweisbar ist?
- 22. ist es möglich, zwei curl_init
- 23. Ist es möglich, den Vergleich FI zu implementieren, um zwei verschiedene Arten von Objekten zu vergleichen?
- 24. XSLT - Vergleichen Sie jeden XML-Attributwert mit einem bestimmten Attributwert.
- 25. PHP - Ist es möglich, XML-Datei in XSL-Datei mit Xslt Transformation
- 26. Vergleichen von zwei XML-Schemas
- 27. Ist es möglich, Datenbank automatisch mit zwei Context zu generieren?
- 28. Es ist möglich, zwei Geräte mit derselben UUID zu haben?
- 29. XSLT - Ist es möglich, Vorlagenübereinstimmungen in einem Span-Tag auszugeben
- 30. Ist es möglich, Template-Basis in Template-Spezialisierungen zu vergleichen?
in diesem Beispiel gibt es keinen Unterschied – user3626733
, welche Art von beweist den Punkt: Sie können dieses eine Beispiel nicht gleichzeitig angeben, Sie müssen die allgemeinen Regeln schreiben. –