Eu preferiria o StringReader porque evita String.getBytes (), mas isso geralmente deve funcionar também.
Michael Myers
3
Quando você chama getBytes (), qual codificação você espera que ela use? Como você está dizendo ao analisador XML que codificação está recebendo? Você espera adivinhar? O que acontece quando você está em uma plataforma em que a codificação padrão não é UTF-8?
javax.xml.parsers.DocumentBuilder.parse(string)
assume a string é um URI (terrível ...)Respostas:
Eu tenho essa função na minha base de código, isso deve funcionar para você.
veja também essa pergunta semelhante
fonte
import org.xml.sax.InputSource;
Uma maneira é usar a versão da análise que utiliza um InputSource em vez de um arquivo
Um SAX InputSource pode ser construído a partir de um objeto Reader. Um objeto Reader é o StringReader
Então, algo como
fonte
javadocs mostram que o método de análise está sobrecarregado.
Crie um StringStream ou InputSource usando sua string XML e você deve estar definido.
fonte
Converta a string em um InputStream e passe-a para DocumentBuilder
EDIT
Em resposta a bendin 's comentário sobre codificação, consulte shsteimer ' s resposta a esta pergunta.
fonte
Eu estou usando esse método
fonte
Você pode usar o pacote Scilca XML Progession disponível no GitHub.
fonte
apenas insira
fonte