Tratamento de XML (Tag não é fechada)

6 respostas
pauloperes

Olá a todos,

Estou tentando tratar uma informação que vem via xml, porem no meio do xml tem uma tag que nao é fechada, vejam a tag no xml abaixo:

<?xml version="1.0" encoding="UTF-8" ?>
<response>
<operation name="Download Cps c:\Keymile\PCOM_GVT_DMS_R2a112.cps" path="cps">
<execution status="app_error" />
<error>
  <id> Cause: Error while sending the file c:\Keymile\PCOM_GVT_DMS_R2a112.cps to the NE
 Cause: Profile/CPS is already existing and cannot be overwritten<id>
  <source>Milegate</source>
</error>
</operation>
</response>
Com isto é gerado uma exception:
org.jdom.input.JDOMParseException: Error on line 9 of document file:/c:/teste.xml: The element type "id" must be terminated by the matching end-tag "</id>".
Tentei no SAXBuilder da minha aplicação deixar da seguinte forma:
SAXBuilder sb = new SAXBuilder(true);

Porem tenho o seguinte erro:
[code]
org.jdom.input.JDOMParseException: Error on line 2 of document file:/c:/teste.xml: Document is invalid: no grammar found.

[/code/

Aguem sabe como posso resolver este problema?

Att,

Paulo

6 Respostas

pmlm

O XML foi gerado por ti? A solução é corrigir o XML que de facto está mal. Onde deve estar , está novamente

pauloperes

O XML não é gerado por mim.

Eu estou dando comandos em um equipamento que me retorna o xml.

Att,

G

você faz isso em um programa, se sim , então manda os dados para uma string ai passar um split e quando encontrar o id coloca uma barra antes de gerar o código final

pauloperes

Guilherme,

Dar o slipt com qual parametro?

Att

ralphsilver
"<String xml>".split("<id>", 2)[0]+"<id>"+"<String xml>".split("<id>",2)[1].replaceAll("<id>", "</id>");

tenta assim: substitui as strings do código pela string que contém o xml

pauloperes

Guilherme,

To no netbeans e ta dando erro de syntax: not a statement

Criado 16 de junho de 2009
Ultima resposta 23 de jun. de 2009
Respostas 6
Participantes 4