Filtern von ungültigen XML-Zeichen in Java

9

Die XML-Spezifikation definiert eine Teilmenge von Unicode-Zeichen, die in XML-Dokumenten zulässig sind: Ссылка .

Wie filtere ich diese Zeichen aus einem String in Java heraus?

einfacher Testfall:

%Vor%     
Grzegorz Oledzki 24.05.2010, 12:54
quelle

6 Antworten

5

Es ist nicht trivial, alle ungültigen Zeichen für XML zu finden. Sie müssen XMLChar.isInvalid () von Xerces aufrufen oder neu implementieren,

Ссылка

    
ZZ Coder 24.05.2010, 13:50
quelle
1

Diese Seite enthält eine Java-Methode zum Entfernen < a href="http://en.wikipedia.org/wiki/XML#Valid_characters"> ungültige XML-Zeichen , indem getestet wird, ob jedes Zeichen innerhalb der Spezifikation liegt, obwohl nicht nach stark entmutigt Zeichen

Das Entkommen der Zeichen ist übrigens keine Lösung, da die Spezifikationen für XML 1.0 und 1.1 die ungültigen Zeichen auch nicht in ausgeblendeter Form zulassen.

    
Stephen C 24.05.2010 13:41
quelle
0

Hier ist eine Lösung, die sich sowohl um den rohen Char kümmert, als auch um den entwichenen Char im Stream, der mit Stax oder Sax funktioniert. Es muss für die anderen ungültigen Zeichen erweitert werden, aber Sie erhalten die Idee

%Vor%     
gomesla 28.02.2012 21:29
quelle
0

Basierend auf einem Kommentar in der Link von Stephen C's Antwort und Wikipedia für die XML 1.1 Spezifikation Hier ist eine Java-Methode, die Ihnen zeigt, wie Sie ungültige Zeichen entfernen können Verwenden Sie regulären Ausdruck ersetzen:

%Vor%     
rogerdpack 09.12.2014 21:06
quelle
0

Verwenden von StringEscapeUtils.escapeXml(xml) von commons-lang wird entkommen, die Charaktere nicht filtern.

    
Bozho 24.05.2010 13:04
quelle
-1

Sie können regex (Regulärer Ausdruck) verwenden, um die Arbeit zu erledigen, siehe ein Beispiel in den Kommentaren hier

    
Tom Brito 24.05.2010 13:07
quelle

Tags und Links