Je préfère le StringReader car il évite String.getBytes (), mais cela devrait généralement fonctionner également.
Michael Myers
3
Lorsque vous appelez getBytes (), quel encodage attendez-vous qu'il utilise? Comment dites-vous à l'analyseur XML quel encodage il obtient? Vous attendez-vous à ce qu'il devine? Que se passe-t-il lorsque vous êtes sur une plateforme où l'encodage par défaut n'est pas UTF-8?
javax.xml.parsers.DocumentBuilder.parse(string)
suppose que la chaîne est un uri (terrible ...)Réponses:
J'ai cette fonction dans ma base de code, cela devrait fonctionner pour vous.
voir aussi cette question similaire
la source
import org.xml.sax.InputSource;
Une façon consiste à utiliser la version d'analyse qui prend une InputSource plutôt qu'un fichier
Un InputSource SAX peut être construit à partir d'un objet Reader. Un objet Reader est le StringReader
Donc quelque chose comme
la source
les javadocs montrent que la méthode d'analyse est surchargée.
Créez un StringStream ou InputSource en utilisant votre chaîne XML et vous devez être défini.
la source
Convertissez la chaîne en InputStream et passez-la à DocumentBuilder
EDIT
En réponse au commentaire de bendin concernant l'encodage, voir la réponse de shsteimer à cette question.
la source
J'utilise cette méthode
la source
Vous pouvez utiliser le package Scilca XML Progession disponible sur GitHub.
la source
juste entrer
la source