Ich würde den StringReader bevorzugen, da er String.getBytes () vermeidet, aber dies sollte normalerweise auch funktionieren.
Michael Myers
3
Welche Codierung erwarten Sie, wenn Sie getBytes () aufrufen? Wie können Sie dem XML-Parser mitteilen, welche Codierung er erhält? Erwarten Sie es zu erraten? Was passiert, wenn Sie sich auf einer Plattform befinden, auf der die Standardcodierung nicht UTF-8 ist?
javax.xml.parsers.DocumentBuilder.parse(string)
davon ausgegangen wird , dass die Saite ein Uri ist (schrecklich ...)Antworten:
Ich habe diese Funktion in meiner Codebasis, dies sollte für Sie funktionieren.
siehe auch diese ähnliche Frage
quelle
import org.xml.sax.InputSource;
Eine Möglichkeit besteht darin, die Analyseversion zu verwenden, die eine InputSource anstelle einer Datei verwendet
Eine SAX InputSource kann aus einem Reader-Objekt erstellt werden. Ein Reader-Objekt ist der StringReader
Also so etwas wie
quelle
Javadocs zeigen, dass die Analysemethode überladen ist.
Erstellen Sie einen StringStream oder eine InputSource mit Ihrem String-XML, und Sie sollten festgelegt sein.
quelle
Konvertieren Sie die Zeichenfolge in einen InputStream und übergeben Sie sie an DocumentBuilder
EDIT
Als Antwort auf bendin ‚s Kommentar bezüglich Codierung finden shsteimer ‘ s Antwort auf diese Frage.
quelle
Ich benutze diese Methode
quelle
Sie können das bei GitHub verfügbare Scilca XML Progession-Paket verwenden.
quelle
einfach eingeben
quelle