XML - Passando o conteúdo como parametro

10 respostas
B

Pessoal, seguinte:

Sabemos que as API que leem XML sempre obtem um arquivo de algum lugar. Ex:

File xmlFile = new File(C:/test.xml);

DocumentBuilderFactory dbf = new   DocumentBuilderFactory.newInstance();

DocumentBuider db = dbf.newDocumentBuilder();

Document doc = db.parse(xmlFile);

Porém o que estou precisando é passar o xml como uma string.

Ex:

String xml = <?xml version=“1.0” encoding=“UTF-8”?>

<pessoa>

<nome>Fulano</nome>

<idade>70</idade>

</pessoa>

Ou então obter um xml da sessão (Isso existe?).
Se alguém puder ajudar, agradeco!

Valeu

Babol

10 Respostas

J

Com dom4j:

String xml = "<?xml version="1.0" encoding="UTF-8"?><pessoa><nome>Fulano</nome><idade>70</idade></pessoa>";

Document doc = DocumentHelper.parseText(xml);

http://www.dom4j.org/

B
"jairelton":
Com dom4j:
String xml = "<?xml version="1.0" encoding="UTF-8"?><pessoa><nome>Fulano</nome><idade>70</idade></pessoa>";

Document doc = DocumentHelper.parseText(xml);

http://www.dom4j.org/

Jairelton,
Primeiro, obrigado pela resposta.

O problema se eu usar o DOM4J é o tamanho do seu jar. Isso porque minha aplicação é web e ja utiliza um jar que é disponibilizado pela rede que atualmente possui 40kb. Se eu inserir mais um jar para baixar via rede, serao ao todo 347kb, muito alto para esse fim.

Alguem tem outra alternativa?

Valeu
Babol

J

Mas como assim “baixar pela rede”, a aplicação não é web?

B

Desculpa a confusão.

Sim, é web e a primeira vez que o usuario acessar a pagina é feito o download do jar.

J

E qual o motivo de fazer o download do jar?

B

Como assim motivo?
Atualmente qdo um usuario entra na pagina pela primeira vez é feito o download do jar para a maquina do usuario. Isso acontece uma unica vez, depois fica armazenado no cache do plugin. Claro que para isso as maquinas possuem jvm instaladas.
Se eu usar o DOM4J sera preciso que faça o download deste jar também. Correto?
É justamente isso preciso evitar, principalmente devido o tamanho (307 Kb).

J

Então não é uma aplicação Servlet, é Applet, certo?

B

Exato, é um applet.

J

Ahh tá, então tenta assim...

import java.io.ByteArrayInputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

...

String xml = "<?xml version="1.0" encoding="UTF-8"?><pessoa><nome>Fulano</nome><idade>70</idade></pessoa>";

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));
B
"jairelton":
Ahh tá, então tenta assim...
import java.io.ByteArrayInputStream;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

...

String xml = "<?xml version="1.0" encoding="UTF-8"?><pessoa><nome>Fulano</nome><idade>70</idade></pessoa>";

Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(xml.getBytes()));

Cara, só tenho uma coisa a te dizer...
Obrigado!!

Valeu pela paciencia, até pelo fato de eu ter esquecido de dizer que é um applet.

Valeu pela força!!
Babol

Criado 31 de maio de 2006
Ultima resposta 8 de jun. de 2006
Respostas 10
Participantes 2