Mein XQuery-Skript:Ausgabe von Text in XQuery mit saxon9he: Wie bekomme ich "<" and ">" in der Ausgabe selbst erstellt, nicht maskiert?
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
declare option output:method "text";
for $row in all/row
return ('"<row>","',data($row),'"
')
Meine XML:
<all>
<row>one</row>
<row>two</row>
<row>three</row>
</all>
Meine Befehlszeile:
java -cp …/saxon9he.jar net.sf.saxon.Query '!omit-xml-declaration=yes' -s:./trouble-with-output-escaping.xml -q:./trouble-with-output-escaping.xqy
als Meine Ausgabe von saxon9he erstellt: tatsächlich
"<row>"," one "
"<row>"," two "
"<row>"," three "
I w Ameise zu haben, Ausgabe wie folgt:
"<row>","one"
"<row>","two"
"<row>","three"
Während meiner Web-Untersuchung ich über XSLT die disable-output-escaping kam. Ich dachte: Wenn XQuery das hätte, könnte das helfen.
Update/0:
Eigentlich nichts (sichtbar) war falsch mit dem oben XQuery-Skript. Die Namespace-Deklaration muss über diese ersetzt werden:
declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization";
gleich aussieht, aber es ist nicht, wie Michael hingewiesen.
Nachdem dies abgeschlossen ist, ist das oben ein Beispiel für das Erstellen von Textausgaben mit XQuery.
string-join(…,"")
wobei ":
In einem anderen Ort Michael zeigte, wie der Raum loszuwerden (0x20), ist, dass die Linien, das heißt die Raumzeichen vorhergehenden Zeilen 2 bis zum Ende zu trennen, wird verwendet, ... "wäre das ganze FLWOR.
Ihre Befehlszeile verursacht hier eine Ausnahme: "Ungültiger Wert für die Serialisierungsmethode: muss xml, html, xhtml, text oder ein QName im '{uri} local' Formular sein" –
Ich tippte den URI manuell (wie abgebildet)), und es hat funktioniert - wie du erklärt hast. (Ich hatte die URI schon vorher aus einem E-Book kopiert, und ich musste trotzdem einige seltsame Bindestriche entfernen.) Big, big thank you !!! –
Nur eine Erinnerung, dass die SO-Konvention nicht zu danken ist, aber die Antwort als akzeptiert zu markieren. Das grüne Häkchen ist für zukünftige Besucher viel einfacher zu erkennen. –