Ler conteúdo XML contido em uma String

Galera, consegui utilizar as classes para XML numa boa. Estou usando o DOM. Porém estou desenvolvendo uma aplicação que vai receber um conteudo XML de outro aplicativo, que vai enviar através de uma conexão com socket. Portanto, não existe um arquivo XML para ser lido, e eu também não queria gerar um, para não gastar espaço de disco, então como faço para ler um conteúdo XML que está em uma variável String???

nao quer gastar espaço em disco com um XML? Cara… o troço tem kbytes… a API é feita pra ler arquivos .xml, e não Strings :roll:

O problema eh que meu sistema vai trocar milhares de mensagens por dia… agora vc imagina alguns poucos kbytes multiplicados por milhares de vezes ao dia, multiplicados por muitos dias e assim sucessivamente… entendeu? bom, por enquanto eu to salvando em arquivo, lendo o arquivo, e depois apagando o arquivo… mas eu queria fazer direto por string, ou outro modo via codigo, sem envolver arquivos… certo? um dos construtores do metodo parse aceita um inputstream… teria entaum como gerar um inputstream a partir de uma string, para passar pro parse?

valeu!

Pera ai q eu ja fiz isso… vou olhar o código e ja ponho aqui…

Realmente não faz sentido escrever em arquivos só para ler novamente (tempo de escrita em disco é em torno de 10.000 vezes mais lento que o tempo escrita em memória).

O que você deve fazer é ler um Reader com StringReader e análogamente usar Writer como StringWriter…

Vinci, teria algum exemplo de como posso fazer isso?

valeu pela ajuda!

Voce pode fazer o seguinte, dado uma string xmlString:


InputStream is = new ByteArrayInputStream(xmlString.getBytes());

Agora vc tem um InputStream, que pode usar para criar o Document do DOM.