---
title: Wie man XSLT- und XQuery-Code debuggt
date: 2022-04-13
categories:
  - development
  - software
  - xml
tags:
  - data-mapping
  - xml-editor
  - xmlspy
  - xquery
  - xslt
description: Video-Demonstration – Sehen Sie, wie die Rücktransformation von XSLT/XQuery die Fehlersuche in XSLT und XQuery vereinfacht, indem sie das Quell-XML und die XSLT-/XQuery-Anweisung, die die Ausgabe steuert, hervorhebt.
---
Status: #blog

Tags:  #data-mapping #xml-editor #xmlspy #xquery #xslt

Categories: [development](/blog/de/category/development.md) | [xsl](/blog/de/category/xsl.md) | [xpath+xquery](/blog/de/category/xpathxquery.md)
# Wie man XSLT- und XQuery-Code debuggt

Nichts ist frustrierender, als unerwartete Ergebnisse bei einer XSLT- oder XQuery-Transformation zu erhalten und stundenlang damit zu verbringen, die Ursache des Problems zu finden – insbesondere wenn man das Projekt von einem anderen Entwickler übernommen hat oder den Code schon seit einigen Monaten nicht mehr betrachtet hat. XMLSpy bietet seit langem einen [XSLT-Debugger](https://www.altova.com/de/xmlspy-xml-editor#xslt_debugger) und einen [XQuery-Debugger](https://www.altova.com/de/xmlspy-xml-editor#xquery_debug), mit denen man Haltepunkte setzen und Transformationen schrittweise durchlaufen kann, um Probleme zu identifizieren.

Für einen interaktiveren Debugging-Prozess bietet XMLSpy außerdem eine Funktion zur [Rücktransformation von XSLT/XQuery](https://www.altova.com/de/xmlspy-xml-editor#xslt_back-mapping).

Mit aktivierter Rückverfolgung können Sie einfach auf den entsprechenden Abschnitt Ihres Ausgabedokuments klicken oder den Mauszeiger darüber bewegen, und XMLSpy hebt sofort das zugehörige XML und die verantwortliche XSLT- oder XQuery-Anweisung hervor. Sehen wir uns an, wie das funktioniert.

![XSLT-Code debuggen mit Rückverfolgung ](/blog/images/v2017R3_backmapping.jpg)

<!--more-->

## Debugging von XSLT- und XQuery-Code mit Rückverfolgung

Da XSLT- und XQuery-Dokumente oft lang und komplex sind, kann es schwierig sein, die Ursache für unerwünschte Ergebnisse zu identifizieren. Für gezieltes Debugging ermöglicht die Rückverfolgung, sofort zu erkennen, welche Knoten und Anweisungen die Ausgabe beeinflussen.

Mit aktivierter Rückverfolgung werden XSLT-Transformationen und XQuery-Ausführungen so durchgeführt, dass das Ergebnisdokument auf die ursprünglichen XSLT+XML- oder XQuery+XML-Dokumente zurückgeführt werden kann. Wenn Sie mit der Maus über einen Abschnitt im Ergebnisdokument fahren, werden die entsprechende XSLT-/XQuery-Anweisung und die XML-Quelldaten für diesen Ergebnisbereich hervorgehoben.

Versuchen wir es. Bevor Sie eine XSLT- oder XQuery-Transformation starten, klicken Sie auf die Schaltfläche "Rückwärtszuordnung aktivieren" in der Symbolleiste von XMLSpy.

![Debugging mit Rückabfrage in XQuery](/blog/images/debug-xquery-backmapping.png)

XMLSpy bietet Ihnen die Möglichkeit, die Quelldatei und die Ausgabedatei nebeneinander anzuzeigen, sodass Sie verwandte Elemente einfach in einem Fenster visualisieren können. Führen Sie anschließend die Transformation durch.

In der unten gezeigten XSLT-Transformation habe ich mit der Maus über einen der Radiobuttons im Ausgabedokument im Browser-Modus positioniert, und XMLSpy hat automatisch den entsprechenden Knoten und die zugehörige Anweisung in den XML- und XSLT-Dokumenten hervorgehoben.

![XSLT-Code debuggen mit Rückverfolgung](/blog/images/debug-xslt-back-mapping.png)

Der Prozess funktioniert im Textmodus sowohl für XSLT- als auch für XQuery-Ausgaben auf die gleiche Weise: Wählen Sie einfach den Abschnitt des Ausgabedokuments aus, den Sie analysieren möchten.

Die Möglichkeit, einfach auf die Ausgabe zu klicken, um deren Ursprung zu identifizieren, spart viel Zeit beim Testen und Debuggen von XSLT- und XQuery-Code. Das Beste daran ist, dass **XMLSpy [die Rückverfolgung](https://www.altova.com/de/xmlspy-xml-editor#xslt_back-mapping) ermöglicht, ohne Ihr Ausgabedokument in irgendeiner Weise zu verändern.**

Sehen Sie in diesem kurzen Video, wie dies sowohl für XSLT als auch für XQuery funktioniert.

![](https://www.youtube.com/watch?v=lK1EDLbxxyo)
