Ich versuche, eine XML-Datei in das Markup zu konvertieren, das von dokuwiki mit XSLT verwendet wird. Dies funktioniert bis zu einem gewissen Grad, aber der Einzug in der XSL-Datei wird in die Ergebnisse eingefügt. Im Moment habe ich zwei Möglichkeiten: Verlasse diese XSLT-Sache vollständig und finde einen anderen Weg, um von XML in Dokuwiki-Markup zu konvertieren, oder lösche etwa 95% des Whitespace aus der XSL-Datei, was es nahezu unlesbar und zu einem Wartungsalbtraum macht.Konvertieren von XML in reinen Text - wie sollte ich Leerzeichen in der XSLT ignorieren/behandeln?
Gibt es eine Möglichkeit, die Einrückung in der XSL-Datei beizubehalten, ohne den ganzen Whitespace auf das endgültige Dokument zu übertragen?
Hintergrund: Ich migriere ein Autodoc-Tool von statischen HTML-Seiten zu Dokuwiki, sodass die vom Serverteam entwickelte API vom Anwendungsteam weiter dokumentiert werden kann, wenn das App-Team schlecht dokumentierten Code ausführt. Die Logik besteht darin, einen Abschnitt jeder Seite für das Autodoc-Werkzeug zur Verfügung zu stellen und Kommentare außerhalb dieses Blocks zuzulassen. Ich benutze XSLT, weil wir bereits die XSL-Datei haben, um von XML zu XHTML zu konvertieren, und ich nehme an, dass es schneller ist, die XSL neu zu schreiben, als meine eigene Lösung von Grund auf zu rollen.
Bearbeiten: Ah, richtig, töricht mich, ich habe das Einzug Attribut vernachlässigt. (Anderer Hintergrund Hinweis: Ich bin neu in XSLT.) Andererseits muss ich immer noch mit Zeilenumbrüchen umgehen. Dokuwiki verwendet Pipes, um zwischen Tabellenspalten zu unterscheiden, was bedeutet, dass alle Daten in einer Tabellenzeile in einer Zeile stehen müssen. Gibt es eine Möglichkeit, zu unterdrücken, dass neue Zeilen ausgegeben werden (nur gelegentlich), so dass ich eine ziemlich komplexe Logik für jede Tabellenzelle in einer etwas lesbaren Form ausführen kann?
Das war extrem hilfreich! Vielen Dank. – Black
das war in der Tat hilfreich, aber ich bin verwirrt, wenn Sie den Ausdruck "zwischen Knoten" verwenden. Ist es nicht wahr, dass alle Leerzeichen in Textknoten enthalten sind? Was meinst du mit "zwischen Knoten"? Wenn ich Ihren Namen nicht erkannt hätte, hätte ich angenommen, dass Sie eine Vorlesung über XML-Dokumentenstruktur benötigen. – LarsH
Guter Artikel, danke! Aber streng genommen verwenden Sie den Begriff "Knoten", wo Sie eigentlich "Element" meinen. – rustyx