[RESOLVIDO] Limpar tags em branco XML

3 respostas
R

eae galera… blz…

seguinte, meu problema é, eu tenho um arquivo xml, que vem com algumas tags em branco, não tem como prever qual tag vem em branco e eu preciso limpar essas tags.

ex:

<tag1>
	<tag2>asf</tag2>
	<tag3>asf</tag3>
	<tag4 />
	<tag5>asf</tag5>
	<tag6></tag6>
	<tag7>asf</tag4>
	<tag8>asf</tag5>
	<tag9>
		<tag10>asf</tag10>
	</tag9>
	<tag11>
		<tag12></tag12>
		<tag13 />
		<tag14></tag14>
	</tag11>
</tag1>

preciso transformar nisso:

<tag1>
	<tag2>asf</tag2>
	<tag3>asf</tag3>
	<tag5>asf</tag5>
	<tag7>asf</tag4>
	<tag8>asf</tag5>
	<tag9>
		<tag10>asf</tag10>
	</tag9>
</tag1>

as vezes vem assim:

<tag />

ou assim:

<tag></tag>

e eu preciso limpar isso do arquivo todo…

alguma ideia???

3 Respostas

E

Isso pode ser resolvido trivialmente usando-se XPath. Estude um pouquinho de XPath.

R

Ola entanglement…

eu dei uma olhada no XPath e pelo que eu entendi eu preciso saber onde as tags em branco irão aparecer, ou eu entendi errado?

o problema eh que não tem como eu prever onde virão as tags em branco.

o que eu preciso eh uma forma de percorrer todo o arquivo e remover dele todas as tags em branco, independente se elas são ou …

compreende??

R

opa…

ola galera…

vamos la…

eu achei uma solução… não eh a mais elegante mas funciona…

basta carregar o conteudo completo do arquivo para uma string

e executa o codigo:

String xml = suaFuncaoCarregaXml(...);
xml = xml.replaceAll("<.*?/>", "");  //limpa tag <tag />       
xml = xml.replaceAll("<.*?></.*>", ""); //limpa tag <tag></tag>

depois basta dar o fim que quiser para a string, reescrever em disco, ou qquer outro tratamento…

ainda quero ver se acho uma solução mais elegante… mas enquanto naum acho… essa me atendeu…

flw

Criado 26 de novembro de 2012
Ultima resposta 27 de nov. de 2012
Respostas 3
Participantes 2