it-swarm.com.de

Wie entferne ich das BOM-Zeichen aus meiner XML-Datei?

Ich verwende xsl, um die Ausgabe meiner XML-Datei zu steuern, aber das Stücklistenzeichen wird hinzugefügt.

67
raluxgaza
# vim file.xml
:set nobomb
:wq
165

Der File BOM Detector (Freeware für Windows) erleichtert das Entfernen der Bytereihenfolge.

18
Anthony Faull

müssen Sie nur dies in Ihre XSLT-Datei hinzufügen:

<xsl:output method="text"
        encoding="ASCII"/>
2
ken

Entfernen Sie einfach die ersten zwei Bytes mit einem beliebigen Hex-Editor.

1
Marko

Das Entfernen des Stücklistensymbols aus der Zeichenfolge mit XSLT ist ganz einfach:

<xsl:value-of select="translate(StringWithBOM,'','')"/>

1
dr_leevsey

Ich hatte den Eindruck, dass XML in Unicode-Codierungen empfohlen wird und bestimmte Unicode-Codierungen eine anfängliche Markierung für die Bytereihenfolge enthalten. Ohne diese Markierung für die Bytereihenfolge ist Ihre Datei nicht mehr korrekt in einer Unicode-Codierung codiert und daher nicht mehr korrekt in XML. XML-Prozessoren werden dazu angehalten, unerbittlich zu sein und beim kleinsten Fehler (z. B. einer falschen Unicode-Codierung) sofort zu versagen. Welche Arten von XML-Prozessoren möchten Sie beschädigen?

Offensichtlich lässt das Entfernen einer Markierung in Byte-Reihenfolge von einem UTF-8-codierten Dokument das Dokument als ASCII codiert (nicht Unicode) erscheinen, und einige Textprozessoren können nur ASCII codierte Dokumente. Arbeiten Sie damit?

0
yfeldblum

Welche Ausgabecodierung soll Ihr XSL-Set verwenden? Welche Kodierung hat das Eingabedokument? Woher kommt der Input und wo wurde er in der Zwischenzeit gespeichert/hochgeladen/heruntergeladen?

XML und XSL sollten standardmäßig UTF-8 verwenden, wenn nichts anderes angegeben ist. Aber hier läuft eindeutig etwas schief.

Eine Sache, die passieren könnte, ist, dass das XML von einem Webserver bereitgestellt wird, der standardmäßig auf ISO-8859-1 eingestellt ist, eine ziemlich gute Standardeinstellung ... vor Unicode.

Etwas abseits des Themas, aber Joels sehr lehrreicher Artikel über Textkodierungen hat mir die Augen geöffnet. Es gibt eine Menge Leute, die ansonsten sehr schlau im Programmieren sind, aber weiterhin denken, es gäbe so etwas wie "Nur-Text" oder sie nennen ihren Text "ASCII" oder "ANSI". Es ist ein Thema, mit dem Sie sich wirklich auseinandersetzen müssen, wenn Sie es noch nicht getan haben.

0
AmbroseChapel