Ich verwende XLST-Dateien, um XML in XML zu transformieren.XML nicht brechenden Raum
Was sind gültige Darstellung von Raum?
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
Ich verwende XLST-Dateien, um XML in XML zu transformieren.XML nicht brechenden Raum
Was sind gültige Darstellung von Raum?
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
<xsl:text> </xsl:text>
XML hat keine benannten Entitäten neben <
, >
, "
, '
und &
.
Alle anderen Zeichen können wörtlich dargestellt werden, vorausgesetzt, Sie haben die richtige Codierung in der XML-Deklaration deklariert (z. B. <?xml version="1.0" encoding="..." ?>
). Die Deklaration von UTF-8 ist optional, da dies ohnehin die Standardeinstellung ist.
Mit anderen Worten: Es gibt keine Notwendigkeit, speziell auf jedes Zeichen zu entkommen überall es sei denn verlassen unescaped es XML-Syntaxregeln (wie <
oder &
würde) brechen.
Sie sind natürlich frei, irgendein Zeichen zu entgehen, das Sie wollen.
Diese Darstellungen sind so weit gleichwertig wie das resultierende Dokument betrifft:
<foo>Test Test</foo>
<foo>Test Test</foo>
<foo>Test Test</foo>
<foo>Test Test</foo><!-- given that the " " really is char code 160 -->
Beachten Sie, dass können erklären benutzerdefinierten benannten Entitäten (wie nbsp
) eine DOCTYPE verwenden.
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
Aber angesichts der Tatsache, dass XML alle Zeichen akzeptiert, die so gut wie nie nötig ist. Vor allem nicht, wenn Sie das Dokument mit einem geeigneten Werkzeug wie einer DOM-API erstellen.
Sind die letzten beiden gleichwertig? Ein Raum ist nicht derselbe wie ein Nicht-Brech-Raum ... zumindest verstehe ich das so – freefaller
Das ist ein Fehler in der Normalisierung von SO. Ich habe definitiv ein NBSP-Zeichen verwendet, aber es wird still durch ein gewöhnliches Leerzeichen ersetzt. Es scheint unmöglich zu sein, einen tatsächlichen NBSP in einer Antwort zu speichern. – Tomalak
Fügen Sie alle Entitäten, die Parse-Fehler verursachen, dem DOCTYPE Ihres * .xls-Stylesheets hinzu.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp " ">
]>
<html xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Jetzt können Sie
wie gewohnt verwenden.
Das erste ist ein normales Leerzeichen, ' ' ist keine gültige Kodierung, und das letztere ist die gültige Kodierung von ' ' – freefaller